CVSROOT: /cvs/dm Module name: multipath-tools Branch: RHEL5_FC6 Changes by: bmarzins@xxxxxxxxxxxxxx 2011-02-16 19:00:52 Modified files: libmultipath : configure.c structs_vec.c Log message: Fix for bz 677821. Multipathd was not aways going into recovery mode when all paths went down, and no_path_retry was set to timeout because of two bugs. First off, multipathd was always resetting the hardware entry when it was updating the multipath device. This caused problems when no paths were available to get the hardware information from. Second, in one place, multipathd forgot to count ghost paths in nr_active paths, this allowed nr_active paths to go negative. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/configure.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1=1.2.2.9&r2=1.2.2.10 http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/structs_vec.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1=1.1.2.5&r2=1.1.2.6 --- multipath-tools/libmultipath/configure.c 2010/06/23 16:28:07 1.2.2.9 +++ multipath-tools/libmultipath/configure.c 2011/02/16 19:00:51 1.2.2.10 @@ -77,7 +77,7 @@ if (mpp->pgpolicyfn && mpp->pgpolicyfn(mpp)) return 1; - mpp->nr_active = pathcount(mpp, PATH_UP); + mpp->nr_active = pathcount(mpp, PATH_UP) + pathcount(mpp, PATH_GHOST); /* * ponders each path group and determine highest prio pg --- multipath-tools/libmultipath/structs_vec.c 2010/06/23 16:28:07 1.1.2.5 +++ multipath-tools/libmultipath/structs_vec.c 2011/02/16 19:00:51 1.1.2.6 @@ -285,7 +285,8 @@ } //adopt_paths(vecs->pathvec, mpp); - mpp->hwe = extract_hwe_from_path(mpp); + if (!mpp->hwe) + mpp->hwe = extract_hwe_from_path(mpp); select_rr_weight(mpp); select_pgfailback(mpp); set_no_path_retry(mpp); -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel