multipath: fix hwhandler check in select_action
authorBenjamin Marzinski <bmarzins@redhat.com>
Thu, 7 Dec 2017 18:48:57 +0000 (12:48 -0600)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Sat, 13 Jan 2018 09:12:41 +0000 (10:12 +0100)
If the existing multipath table does not have a hardware handler set,
then even if retain_hwhandler is enabled on the new table, it may still
be possible to set the hardware handler on reload. So, adding a
hardware handler to the table should trigger a reload in this case.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
libmultipath/configure.c

index 09cbe3c..0dfa250 100644 (file)
@@ -563,7 +563,8 @@ select_action (struct multipath * mpp, vector curmp, int force_reload)
                        mpp->alias);
                return;
        }
-       if (mpp->retain_hwhandler != RETAIN_HWHANDLER_ON &&
+       if ((mpp->retain_hwhandler != RETAIN_HWHANDLER_ON ||
+            strcmp(cmpp->hwhandler, "0") == 0) &&
            (strlen(cmpp->hwhandler) != strlen(mpp->hwhandler) ||
             strncmp(cmpp->hwhandler, mpp->hwhandler,
                    strlen(mpp->hwhandler)))) {