[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[dm-devel] multipath-tools/libmultipath configure.c struc ...



CVSROOT:	/cvs/dm
Module name:	multipath-tools
Branch: 	RHEL5_FC6
Changes by:	bmarzins sourceware org	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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]