[dm-devel] multipathd:checkerloop() - why not check path state before calling pathinfo(), which calls path priority callouts?

David Wysochanski davidw at netapp.com
Wed Mar 1 19:54:47 UTC 2006


Looking through the mulitpathd code, in particular checkerloop() and the
below snippit.  I'm wondering why the path state isn't checked and then the
pathinfo() not called if the path state is PATH_DOWN (or maybe !PATH_UP).
Seems like we shouldn't be trying to refresh the priority if we know the
path is bad anyway, since the callouts all issue scsi passthru commands,
which will always fail.  Is this right or am I missing something?

Thanks.



            /*
             * path prio refreshing
             */
            condlog(4, "path prio refresh");
            pathinfo(pp, conf->hwtable, DI_PRIO);

            if (need_switch_pathgroup(pp->mpp, 0)) {
                if (pp->mpp->pgfailback > 0 &&
                    pp->mpp->failback_tick <= 0)
                    pp->mpp->failback_tick =
                        pp->mpp->pgfailback + 1;
                else if (pp->mpp->pgfailback ==
                        -FAILBACK_IMMEDIATE)
                    switch_pathgroup(pp->mpp);
            }




More information about the dm-devel mailing list