multipath-tools: Manual failback fix when priority changes
authorMoger, Babu <Babu.Moger@netapp.com>
Fri, 27 May 2011 14:30:19 +0000 (10:30 -0400)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Tue, 7 Jun 2011 05:52:05 +0000 (07:52 +0200)
Current code switches the path-group when there is a change in priority. However,
this is not the right thing to do when failback is set to manual. This patch fixes
this problem. Call update_path_groups only if failback is immediate.

Signed-off-by: Babu Moger <babu.moger@netapp.com>
multipathd/main.c

index e0606b6..be236cb 100644 (file)
@@ -1189,7 +1189,8 @@ check_path (struct vectors * vecs, struct path * pp)
        condlog(4, "path prio refresh");
 
        if (update_prio(pp, new_path_up) &&
-           pp->mpp->pgpolicyfn == (pgpolicyfn *)group_by_prio)
+           (pp->mpp->pgpolicyfn == (pgpolicyfn *)group_by_prio) &&
+            pp->mpp->pgfailback == -FAILBACK_IMMEDIATE)
                update_path_groups(pp->mpp, vecs, !new_path_up);
        else if (need_switch_pathgroup(pp->mpp, 0)) {
                if (pp->mpp->pgfailback > 0 &&