[device-mapper-multipath] device-mapper-multipath-0.4.9-48

Benjamin Marzinski bmarzins at fedoraproject.org
Fri Apr 5 03:44:14 UTC 2013


commit 0b94e5c7c22f27799d350698962929750d943bd7
Author: Benjamin Marzinski <bmarzins at redhat.com>
Date:   Thu Apr 4 16:45:46 2013 -0500

    device-mapper-multipath-0.4.9-48
    
    Add 0026-fix-checker-time.patch
      * Once multipathd hit it max checker interval, it was reverting to
        to shortest checker interval
    Add 0027-RH-get-wwid.patch
      * Multipath wasn't correctly setting the multipath wwid when it read devices
        in from the kernel
    Add 0028-RHBZ-929078-refresh-udev-dev.patch
      * Make multipath try to get the UID of down devices.  Also, on ev_add_path,
        make multipathd reinitialize existing devices that weren't fully
        initialized before.

 0026-fix-checker-time.patch             |   23 +++++++++++++
 0027-RH-get-wwid.patch                  |   17 +++++++++
 0028-RHBZ-929078-refresh-udev-dev.patch |   55 +++++++++++++++++++++++++++++++
 device-mapper-multipath.spec            |   20 +++++++++++-
 4 files changed, 114 insertions(+), 1 deletions(-)
---
diff --git a/0026-fix-checker-time.patch b/0026-fix-checker-time.patch
new file mode 100644
index 0000000..e05ef58
--- /dev/null
+++ b/0026-fix-checker-time.patch
@@ -0,0 +1,23 @@
+---
+ multipathd/main.c |    7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+Index: multipath-tools-130222/multipathd/main.c
+===================================================================
+--- multipath-tools-130222.orig/multipathd/main.c
++++ multipath-tools-130222/multipathd/main.c
+@@ -1226,11 +1226,10 @@ check_path (struct vectors * vecs, struc
+ 					pp->checkint = 2 * pp->checkint;
+ 				else
+ 					pp->checkint = conf->max_checkint;
+-
+-				pp->tick = pp->checkint;
+-				condlog(4, "%s: delay next check %is",
+-					pp->dev_t, pp->tick);
+ 			}
++			pp->tick = pp->checkint;
++			condlog(4, "%s: delay next check %is",
++				pp->dev_t, pp->tick);
+ 		}
+ 	}
+ 	else if (newstate == PATH_DOWN) {
diff --git a/0027-RH-get-wwid.patch b/0027-RH-get-wwid.patch
new file mode 100644
index 0000000..04217b4
--- /dev/null
+++ b/0027-RH-get-wwid.patch
@@ -0,0 +1,17 @@
+---
+ libmultipath/structs_vec.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: multipath-tools-130222/libmultipath/structs_vec.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/structs_vec.c
++++ multipath-tools-130222/libmultipath/structs_vec.c
+@@ -106,7 +106,7 @@ orphan_paths (vector pathvec, struct mul
+ static void
+ set_multipath_wwid (struct multipath * mpp)
+ {
+-	if (mpp->wwid)
++	if (strlen(mpp->wwid))
+ 		return;
+ 
+ 	dm_get_uuid(mpp->alias, mpp->wwid);
diff --git a/0028-RHBZ-929078-refresh-udev-dev.patch b/0028-RHBZ-929078-refresh-udev-dev.patch
new file mode 100644
index 0000000..c14ddb5
--- /dev/null
+++ b/0028-RHBZ-929078-refresh-udev-dev.patch
@@ -0,0 +1,55 @@
+---
+ libmultipath/discovery.c |    2 +-
+ multipathd/main.c        |   19 ++++++++++++++++++-
+ 2 files changed, 19 insertions(+), 2 deletions(-)
+
+Index: multipath-tools-130222/libmultipath/discovery.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/discovery.c
++++ multipath-tools-130222/libmultipath/discovery.c
+@@ -1034,7 +1034,7 @@ pathinfo (struct path *pp, vector hwtabl
+ 		}
+ 	}
+ 
+-	if (path_state == PATH_UP && (mask & DI_WWID) && !strlen(pp->wwid))
++	if ((mask & DI_WWID) && !strlen(pp->wwid))
+ 		get_uid(pp);
+ 	if (mask & DI_BLACKLIST && mask & DI_WWID) {
+ 		if (filter_wwid(conf->blist_wwid, conf->elist_wwid,
+Index: multipath-tools-130222/multipathd/main.c
+===================================================================
+--- multipath-tools-130222.orig/multipathd/main.c
++++ multipath-tools-130222/multipathd/main.c
+@@ -376,7 +376,7 @@ static int
+ uev_add_path (struct uevent *uev, struct vectors * vecs)
+ {
+ 	struct path *pp;
+-	int ret;
++	int ret, i;
+ 
+ 	condlog(2, "%s: add path (uevent)", uev->kernel);
+ 	if (strstr(uev->kernel, "..") != NULL) {
+@@ -393,6 +393,23 @@ uev_add_path (struct uevent *uev, struct
+ 			uev->kernel);
+ 		if (pp->mpp)
+ 			return 0;
++		if (!strlen(pp->wwid)) {
++			udev_device_unref(pp->udev);
++			pp->udev = udev_device_ref(uev->udev);
++			ret = pathinfo(pp, conf->hwtable,
++				       DI_ALL | DI_BLACKLIST);
++			if (ret == 2) {
++				i = find_slot(vecs->pathvec, (void *)pp);
++				if (i != -1)
++					vector_del_slot(vecs->pathvec, i);
++				free_path(pp);
++				return 0;
++			} else if (ret == 1) {
++				condlog(0, "%s: failed to reinitialize path",
++					uev->kernel);
++				return 1;
++			}
++		}
+ 	} else {
+ 		/*
+ 		 * get path vital state
diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec
index 794d5d9..3dbbeef 100644
--- a/device-mapper-multipath.spec
+++ b/device-mapper-multipath.spec
@@ -1,7 +1,7 @@
 Summary: Tools to manage multipath devices using device-mapper
 Name: device-mapper-multipath
 Version: 0.4.9
-Release: 47%{?dist}
+Release: 48%{?dist}
 License: GPL+
 Group: System Environment/Base
 URL: http://christophe.varoqui.free.fr/
@@ -33,6 +33,9 @@ Patch0022: 0022-RH-multipathd-check-wwids.patch
 Patch0023: 0023-RH-multipath-wipe-wwid.patch
 Patch0024: 0024-RH-multipath-wipe-wwids.patch
 Patch0025: 0025-UPBZ-916668_add_maj_min.patch
+Patch0026: 0026-fix-checker-time.patch
+Patch0027: 0027-RH-get-wwid.patch
+Patch0028: 0028-RHBZ-929078-refresh-udev-dev.patch
 
 # runtime
 Requires: %{name}-libs = %{version}-%{release}
@@ -110,6 +113,9 @@ kpartx manages partition creation and removal for device-mapper devices.
 %patch0023 -p1
 %patch0024 -p1
 %patch0025 -p1
+%patch0026 -p1
+%patch0027 -p1
+%patch0028 -p1
 cp %{SOURCE1} .
 
 %build
@@ -200,6 +206,18 @@ bin/systemctl --no-reload enable multipathd.service >/dev/null 2>&1 ||:
 %{_mandir}/man8/kpartx.8.gz
 
 %changelog
+* Thu Apr  4 2013 Benjamin Marzinski <bmarzins at redhat.com> 0.4.9-48
+- Add 0026-fix-checker-time.patch
+  * Once multipathd hit it max checker interval, it was reverting to
+    to shortest checker interval
+- Add 0027-RH-get-wwid.patch
+  * Multipath wasn't correctly setting the multipath wwid when it read devices
+    in from the kernel
+- Add 0028-RHBZ-929078-refresh-udev-dev.patch
+  * Make multipath try to get the UID of down devices.  Also, on ev_add_path,
+    make multipathd reinitialize existing devices that weren't fully
+    initialized before.
+
 * Mon Apr  1 2013 Benjamin Marzinski <bmarzins at redhat.com> 0.4.9-47
 - Add 0021-RHBZ-919119-respect-kernel-cmdline.patch
   * keep the multipath.rules udev file from running and multipathd from


More information about the scm-commits mailing list