[multipathd] give ev_add_path() separated failure messages
authorChristophe Varoqui <christophe.varoqui@free.fr>
Sun, 22 Nov 2009 00:16:00 +0000 (01:16 +0100)
committerChristophe Varoqui <christophe.varoqui@free.fr>
Sun, 22 Nov 2009 00:16:00 +0000 (01:16 +0100)
when the multipath already exists and
1/ new path size is 0
2/ new path size is different than the multipath known size

as per Chandra Seetharaman  recommendation.

multipathd/main.c

index ca26ae8..73b06cb 100644 (file)
@@ -398,16 +398,21 @@ ev_add_path (char * devname, struct vectors * vecs)
        mpp = pp->mpp = find_mp_by_wwid(vecs->mpvec, pp->wwid);
 rescan:
        if (mpp) {
-                       if ((!pp->size) || (mpp->size != pp->size)) {
+               if ((!pp->size) || (mpp->size != pp->size)) {
+                       if (!pp->size)
+                               condlog(0, "%s: failed to add new path %s, "
+                                       "device size is 0",
+                                       devname, pp->dev);
+                       else
                                condlog(0, "%s: failed to add new path %s, "
                                        "device size mismatch",
                                        devname, pp->dev);
-                               int i = find_slot(vecs->pathvec, (void *)pp);
-                               if (i != -1)
-                                       vector_del_slot(vecs->pathvec, i);
-                               free_path(pp);
-                               return 1;
-                       }
+                       int i = find_slot(vecs->pathvec, (void *)pp);
+                       if (i != -1)
+                               vector_del_slot(vecs->pathvec, i);
+                       free_path(pp);
+                       return 1;
+               }
 
                condlog(4,"%s: adopting all paths for path %s",
                        mpp->alias, pp->dev);