summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Marzinski <bmarzins@redhat.com>2013-04-04 16:45:46 -0500
committerBenjamin Marzinski <bmarzins@redhat.com>2013-04-04 16:45:46 -0500
commit0b94e5c7c22f27799d350698962929750d943bd7 (patch)
treefa7095fc0ff113423619526469c9de6bcf33d7e2
parent816bea4c19c24a4ae9063ea2ec1e87f898288b91 (diff)
downloaddevice-mapper-multipath-0b94e5c7c22f27799d350698962929750d943bd7.tar.gz
device-mapper-multipath-0b94e5c7c22f27799d350698962929750d943bd7.tar.xz
device-mapper-multipath-0b94e5c7c22f27799d350698962929750d943bd7.zip
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.
-rw-r--r--0026-fix-checker-time.patch23
-rw-r--r--0027-RH-get-wwid.patch17
-rw-r--r--0028-RHBZ-929078-refresh-udev-dev.patch55
-rw-r--r--device-mapper-multipath.spec20
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@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@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