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

bmarzins at sourceware.org bmarzins at sourceware.org
Tue Nov 30 17:21:21 UTC 2010


CVSROOT:	/cvs/dm
Module name:	multipath-tools
Branch: 	RHEL5_FC6
Changes by:	bmarzins at sourceware.org	2010-11-30 17:21:20

Modified files:
	libmultipath   : discovery.c switchgroup.c 

Log message:
	updated fix for bzs #484419 and #570513.
	simplified cciss handling to mirror what upstream does. Simply assume that
	devices named like a cciss device are a cciss device.
	Also, don't divide the priority by the number of enabled paths if that number
	is 0.  Not applicable upstream.

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.16&r2=1.32.2.17
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/switchgroup.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1=1.5.2.3&r2=1.5.2.4

--- multipath-tools/libmultipath/discovery.c	2010/09/03 03:46:12	1.32.2.16
+++ multipath-tools/libmultipath/discovery.c	2010/11/30 17:21:19	1.32.2.17
@@ -477,24 +477,6 @@
 }
 
 static int
-sysfs_get_driver (char *sysfs_path, char * dev, char *driver)
-{
-	char path[FILE_NAME_SIZE];
-	char buff[SYSFS_NAME_LEN];
-
-	if (safe_sprintf(path, "%s/block/%s/device/driver", sysfs_path, dev)) {
-		condlog(0, "driver path too small");
-		return 1;
-	}
-	if (sysfs_get_link(path, buff, SYSFS_NAME_LEN) < 0) {
-		condlog(0, "can't get driver link: %s", strerror(errno));
-		return 1;
-	}
-	basename(buff, driver);
-	return 0;
-}
-
-static int
 sysfs_get_bus (char * sysfs_path, struct path * pp)
 {
 	struct sysfs_device *sdev;
@@ -536,9 +518,8 @@
 
 	while (loop--) {
 		sdev = sysfs_open_device_path(attr_buff);
-		if(!strncmp(pp->dev,"cciss",5)) 
-                         sysfs_get_driver(sysfs_path, pp->dev,
-                             sdev->bus);
+		if(!strncmp(pp->dev,"cciss",5))
+			strcpy(sdev->bus, "cciss");
 
 		if (strlen(sdev->bus))
 			break;
@@ -549,8 +530,7 @@
 #else
 	sdev = sysfs_open_device_path(attr_buff);
 	if(!strncmp(pp->dev,"cciss",5))
-                  sysfs_get_driver(sysfs_path, pp->dev,
-                     sdev->bus);
+		strcpy(sdev->bus, "cciss");
 #endif
 
 	if (!strncmp(sdev->bus, "scsi", 4))
--- multipath-tools/libmultipath/switchgroup.c	2010/09/03 20:59:14	1.5.2.3
+++ multipath-tools/libmultipath/switchgroup.c	2010/11/30 17:21:19	1.5.2.4
@@ -36,7 +36,7 @@
 				enabled_paths++;
 			}
 		}
-		if (conf->pg_prio_calc == PG_PRIO_CALC_AVG)
+		if (conf->pg_prio_calc == PG_PRIO_CALC_AVG && enabled_paths)
 			pgp->priority = priority / enabled_paths;
 		else
 			pgp->priority = priority;




More information about the dm-devel mailing list