Signed-off-by: Benjamin Marzinski <[email protected]>
---
 multipathd/main.c | 51 +++++++++++++++++++++--------------------------
 1 file changed, 23 insertions(+), 28 deletions(-)

diff --git a/multipathd/main.c b/multipathd/main.c
index 276329c4..d6f4704b 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -2629,9 +2629,8 @@ handle_uninitialized_path(struct vectors * vecs, struct 
path * pp,
        struct config *conf;
        int ret;
 
-       if (((pp->initialized == INIT_OK || pp->initialized == INIT_PARTIAL ||
-             pp->initialized == INIT_REQUESTED_UDEV) && !pp->mpp) ||
-           pp->initialized == INIT_REMOVED)
+       if (pp->initialized != INIT_NEW && pp->initialized != INIT_FAILED &&
+           pp->initialized != INIT_MISSING_UDEV)
                return 0;
 
        if (pp->tick)
@@ -2645,7 +2644,7 @@ handle_uninitialized_path(struct vectors * vecs, struct 
path * pp,
        max_checkint = conf->max_checkint;
        put_multipath_config(conf);
 
-       if (!pp->mpp && pp->initialized == INIT_MISSING_UDEV) {
+       if (pp->initialized == INIT_MISSING_UDEV) {
                if (pp->retriggers < retrigger_tries) {
                        static const char change[] = "change";
                        ssize_t ret;
@@ -2685,31 +2684,27 @@ handle_uninitialized_path(struct vectors * vecs, struct 
path * pp,
 
        newstate = check_path_state(pp);
 
-       if (!pp->mpp) {
-               if (!strlen(pp->wwid) &&
-                   (pp->initialized == INIT_FAILED ||
-                    pp->initialized == INIT_NEW) &&
-                   (newstate == PATH_UP || newstate == PATH_GHOST)) {
-                       condlog(2, "%s: add missing path", pp->dev);
-                       conf = get_multipath_config();
-                       pthread_cleanup_push(put_multipath_config, conf);
-                       ret = pathinfo(pp, conf, DI_ALL | DI_BLACKLIST);
-                       pthread_cleanup_pop(1);
-                       /* INIT_OK implies ret == PATHINFO_OK */
-                       if (pp->initialized == INIT_OK) {
-                               ev_add_path(pp, vecs, 1);
-                               pp->tick = 1;
-                       } else {
-                               if (ret == PATHINFO_SKIPPED)
-                                       return -1;
-                               /*
-                                * We failed multiple times to initialize this
-                                * path properly. Don't re-check too often.
-                                */
-                               pp->checkint = max_checkint;
-                       }
+       if (!strlen(pp->wwid) &&
+           (pp->initialized == INIT_FAILED || pp->initialized == INIT_NEW) &&
+           (newstate == PATH_UP || newstate == PATH_GHOST)) {
+               condlog(2, "%s: add missing path", pp->dev);
+               conf = get_multipath_config();
+               pthread_cleanup_push(put_multipath_config, conf);
+               ret = pathinfo(pp, conf, DI_ALL | DI_BLACKLIST);
+               pthread_cleanup_pop(1);
+               /* INIT_OK implies ret == PATHINFO_OK */
+               if (pp->initialized == INIT_OK) {
+                       ev_add_path(pp, vecs, 1);
+                       pp->tick = 1;
+               } else {
+                       if (ret == PATHINFO_SKIPPED)
+                               return -1;
+                       /*
+                        * We failed multiple times to initialize this
+                        * path properly. Don't re-check too often.
+                        */
+                       pp->checkint = max_checkint;
                }
-               return 0;
        }
        return 0;
 }
-- 
2.45.0


Reply via email to