The code at the end of coalesce_paths() removes a multipath device that
was just created/reloaded, if none of its path devices have pp->dev set.
This code is very old, and no longer has any actual effect. Multipath
devices no longer get placed in pathvec without having pp->dev set. Even
if they could, there's no point in creating/reloading the device and
then immediately removing it.

Reviewed-by: Martin Wilck <mwi...@suse.com>
Signed-off-by: Benjamin Marzinski <bmarz...@redhat.com>
---
 libmultipath/configure.c | 46 ----------------------------------------
 1 file changed, 46 deletions(-)

diff --git a/libmultipath/configure.c b/libmultipath/configure.c
index 2f417914..3f241c5c 100644
--- a/libmultipath/configure.c
+++ b/libmultipath/configure.c
@@ -1060,28 +1060,6 @@ int domap(struct multipath *mpp, char *params, int 
is_daemon)
        return DOMAP_FAIL;
 }
 
-static int
-deadmap (struct multipath * mpp)
-{
-       int i, j;
-       struct pathgroup * pgp;
-       struct path * pp;
-
-       if (!mpp->pg)
-               return 1;
-
-       vector_foreach_slot (mpp->pg, pgp, i) {
-               if (!pgp->paths)
-                       continue;
-
-               vector_foreach_slot (pgp->paths, pp, j)
-                       if (strlen(pp->dev))
-                               return 0; /* alive */
-       }
-
-       return 1; /* dead */
-}
-
 extern int
 check_daemon(void)
 {
@@ -1313,30 +1291,6 @@ int coalesce_paths (struct vectors *vecs, vector mpvec, 
char *refwwid,
                        remove_map(mpp, vecs->pathvec, vecs->mpvec,
                                   KEEP_VEC);
        }
-       /*
-        * Flush maps with only dead paths (ie not in sysfs)
-        * Keep maps with only failed paths
-        */
-       if (mpvec) {
-               vector_foreach_slot (newmp, mpp, i) {
-                       char alias[WWID_SIZE];
-
-                       if (!deadmap(mpp))
-                               continue;
-
-                       strlcpy(alias, mpp->alias, WWID_SIZE);
-
-                       vector_del_slot(newmp, i);
-                       i--;
-                       remove_map(mpp, vecs->pathvec, vecs->mpvec, KEEP_VEC);
-
-                       if (dm_flush_map(alias))
-                               condlog(2, "%s: remove failed (dead)",
-                                       alias);
-                       else
-                               condlog(2, "%s: remove (dead)", alias);
-               }
-       }
        ret = CP_OK;
 out:
        free(size_mismatch_seen);
-- 
2.17.2

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

Reply via email to