[dm-devel] multipath-tools/libmultipath discovery.c structs.c

bmarzins at sourceware.org bmarzins at sourceware.org
Wed May 2 00:16:37 UTC 2007


CVSROOT:	/cvs/dm
Module name:	multipath-tools
Branch: 	RHEL5_FC6
Changes by:	bmarzins at sourceware.org	2007-05-02 00:16:36

Modified files:
	libmultipath   : discovery.c structs.c 

Log message:
	Fix for 223762. Multipath no longer silently fails on paths in can't get
	information for.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/discovery.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1=1.32.2.2&r2=1.32.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/structs.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1=1.14&r2=1.14.2.1

--- multipath-tools/libmultipath/discovery.c	2007/04/24 18:49:16	1.32.2.2
+++ multipath-tools/libmultipath/discovery.c	2007/05/02 00:16:36	1.32.2.3
@@ -116,8 +116,11 @@
 	if (!filepresent(path)){
 		unsigned int val;
 		int ret;
-		if (sscanf(devname, "gnbd%u", &val) != 1)
-			return 1;
+		if (sscanf(devname, "gnbd%u", &val) != 1){
+			condlog(3, "%s doesn't exit, not adding %s", path,
+				devname);
+			return 0;
+		}
 		ret = device_ok_to_add(devname);
 		if (ret == -1)
 			return 1;
@@ -760,8 +763,7 @@
 	if (mask & DI_CHECKER && get_state(pp))
 		goto blank;
 	
-	if (mask & DI_PRIO &&
-	    (pp->state == PATH_UP || pp->priority == PRIO_UNDEF))
+	if (mask & DI_PRIO && pp->state == PATH_UP)
 		get_prio(pp);
 
 	if (mask & DI_WWID && !strlen(pp->wwid))
--- multipath-tools/libmultipath/structs.c	2006/06/06 18:32:43	1.14
+++ multipath-tools/libmultipath/structs.c	2007/05/02 00:16:36	1.14.2.1
@@ -218,8 +218,10 @@
 int
 store_path (vector pathvec, struct path * pp)
 {
-	if (!vector_alloc_slot(pathvec))
+	if (!vector_alloc_slot(pathvec)){
+		condlog(0, "unable to allocate space for path");
 		return 1;
+	}
 
 	vector_set_slot(pathvec, pp);
 




More information about the dm-devel mailing list