If a WWID has been marked as "failed", don't treat it as "valid multipath
device path" in multipath -c/-u. This is key to achieve consistency between
multipathd and udev rule processing.

Signed-off-by: Martin Wilck <mwi...@suse.com>
Reviewed-by: Benjamin Marzinski <bmarz...@redhat.com>
---
 multipath/main.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/multipath/main.c b/multipath/main.c
index 59a72ed0..942caf4c 100644
--- a/multipath/main.c
+++ b/multipath/main.c
@@ -450,8 +450,12 @@ configure (struct config *conf, enum mpath_cmds cmd,
                 * Paths listed in the wwids file are always considered valid.
                 */
                if (cmd == CMD_VALID_PATH) {
-                       if ((!find_multipaths_on(conf) && ignore_wwids_on(conf))
-                           || check_wwids_file(refwwid, 0) == 0)
+                       if (is_failed_wwid(refwwid) == WWID_IS_FAILED) {
+                               r = 1;
+                               goto print_valid;
+                       } else if ((!find_multipaths_on(conf) &&
+                                   ignore_wwids_on(conf)) ||
+                                  check_wwids_file(refwwid, 0) == 0)
                                r = 0;
                        if (r == 0 ||
                            !find_multipaths_on(conf) ||
-- 
2.16.1

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to