[dm-devel] [PATCH 49/78] multipathd: do not remove paths without uevents
Hannes Reinecke
hare at suse.de
Mon Mar 16 12:36:36 UTC 2015
multipathd should not remove any paths without the corresponding
uevent. Otherwise the daemon will never be able to reinstate that
path as it wouldn't get any uevents.
Signed-off-by: Hannes Reinecke <hare at suse.de>
---
multipathd/main.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/multipathd/main.c b/multipathd/main.c
index 2eade36..0608f06 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -1152,11 +1152,14 @@ check_path (struct vectors * vecs, struct path * pp)
pp->tick = conf->checkint;
newstate = path_offline(pp);
- if (newstate == PATH_REMOVED) {
- condlog(2, "%s: remove path (checker)", pp->dev);
- ev_remove_path(pp, vecs);
- return 0;
- }
+ /*
+ * Wait for uevent for removed paths;
+ * some LLDDs like zfcp keep paths unavailable
+ * without sending uevents.
+ */
+ if (newstate == PATH_REMOVED)
+ newstate = PATH_DOWN;
+
if (newstate == PATH_UP)
newstate = get_state(pp, 1);
else
--
1.8.4.5
More information about the dm-devel
mailing list