[multipathd] fix no_path_retry keyword handling in multipathd
authorChristophe Varoqui <root@xa-s05.(none)>
Wed, 26 Oct 2005 20:47:55 +0000 (22:47 +0200)
committerChristophe Varoqui <root@xa-s05.(none)>
Wed, 26 Oct 2005 20:47:55 +0000 (22:47 +0200)
The no_path_retry keyword can be set in a "device configlet", but
libmultipath/propsel.c:select_no_path_retry(mpp) uses mpp->hwe to get at
it. But we didn't care setting mpp->hwe. Do that now.

multipathd/main.c

index 77542b5..ddf18cd 100644 (file)
@@ -298,6 +298,18 @@ set_no_path_retry(struct multipath *mpp)
        }
 }
 
+static struct hwentry *
+extract_hwe_from_path(struct multipath * mpp)
+{
+       struct path * pp;
+       struct pathgroup * pgp;
+
+       pgp = VECTOR_SLOT(mpp->pg, 0);
+       pp = VECTOR_SLOT(pgp->paths, 0);
+
+       return pp->hwe;
+}
+
 static int
 setup_multipath (struct vectors * vecs, struct multipath * mpp)
 {
@@ -312,6 +324,7 @@ setup_multipath (struct vectors * vecs, struct multipath * mpp)
 
        adopt_paths(vecs, mpp);
        select_pgfailback(mpp);
+       mpp->hwe = extract_hwe_from_path(mpp);
        set_no_path_retry(mpp);
 
        return 0;
@@ -917,6 +930,7 @@ reconfigure (struct vectors * vecs)
 
        vector_foreach_slot (vecs->mpvec, mpp, i) {
                mpp->mpe = find_mpe(mpp->wwid);
+               mpp->hwe = extract_hwe_from_path(mpp);
                adopt_paths(vecs, mpp);
                set_no_path_retry(mpp);
        }