You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
--- |
|
multipathd/main.c | 15 +++++++++++---- |
|
1 file changed, 11 insertions(+), 4 deletions(-) |
|
|
|
Index: multipath-tools-130222/multipathd/main.c |
|
=================================================================== |
|
--- multipath-tools-130222.orig/multipathd/main.c |
|
+++ multipath-tools-130222/multipathd/main.c |
|
@@ -530,9 +530,15 @@ ev_add_path (struct path * pp, struct ve |
|
} |
|
mpp = find_mp_by_wwid(vecs->mpvec, pp->wwid); |
|
if (mpp && mpp->wait_for_udev) { |
|
- mpp->wait_for_udev = 2; |
|
- orphan_path(pp); |
|
- return 0; |
|
+ if (pathcount(mpp, PATH_UP) == 0 && |
|
+ (pathcount(mpp, PATH_GHOST) == 0 || |
|
+ pp->tpgs == TPGS_IMPLICIT)) |
|
+ mpp->force_udev_reload = 1; |
|
+ else { |
|
+ mpp->wait_for_udev = 2; |
|
+ orphan_path(pp); |
|
+ return 0; |
|
+ } |
|
} |
|
|
|
pp->mpp = mpp; |
|
@@ -551,7 +557,8 @@ rescan: |
|
|
|
condlog(4,"%s: adopting all paths for path %s", |
|
mpp->alias, pp->dev); |
|
- mpp->force_udev_reload = !pathcount(mpp, PATH_WILD); |
|
+ if (pathcount(mpp, PATH_WILD) == 0) |
|
+ mpp->force_udev_reload = 1; |
|
if (adopt_paths(vecs->pathvec, mpp, 1)) |
|
goto fail; /* leave path added to pathvec */ |
|
|
|
|