[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