summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Marzinski <bmarzins@redhat.com>2012-12-17 09:10:34 -0600
committerBenjamin Marzinski <bmarzins@redhat.com>2012-12-17 09:10:34 -0600
commit72b7e4109aadc6d087b7df67fc590c33b223b17f (patch)
treefe4f1328c4b50a87c2468d7770d513f980b0326a
parente66c5ca2b02d6a08234f48cc09e2ae43b756a023 (diff)
downloaddevice-mapper-multipath-72b7e4109aadc6d087b7df67fc590c33b223b17f.tar.gz
device-mapper-multipath-72b7e4109aadc6d087b7df67fc590c33b223b17f.tar.xz
device-mapper-multipath-72b7e4109aadc6d087b7df67fc590c33b223b17f.zip
device-mapper-multipath-0.4.9-41
Add 0033-RH-dont-disable-libdm-failback-for-sync-case.patch * make kpartx -s and multipath use libdm failback device creation, so that they work in environments without udev
-rw-r--r--0033-RH-dont-disable-libdm-failback-for-sync-case.patch111
-rw-r--r--device-mapper-multipath.spec9
2 files changed, 119 insertions, 1 deletions
diff --git a/0033-RH-dont-disable-libdm-failback-for-sync-case.patch b/0033-RH-dont-disable-libdm-failback-for-sync-case.patch
new file mode 100644
index 0000000..7bea525
--- /dev/null
+++ b/0033-RH-dont-disable-libdm-failback-for-sync-case.patch
@@ -0,0 +1,111 @@
+---
+ kpartx/devmapper.c | 4 ++--
+ kpartx/devmapper.h | 2 ++
+ kpartx/kpartx.c | 6 +++---
+ libmultipath/devmapper.c | 6 +++---
+ 4 files changed, 10 insertions(+), 8 deletions(-)
+
+Index: multipath-tools-120821/kpartx/devmapper.c
+===================================================================
+--- multipath-tools-120821.orig/kpartx/devmapper.c
++++ multipath-tools-120821/kpartx/devmapper.c
+@@ -78,7 +78,7 @@ dm_simplecmd (int task, const char *name
+ if (no_flush)
+ dm_task_no_flush(dmt);
+
+- if (udev_wait_flag && !dm_task_set_cookie(dmt, cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK))
++ if (udev_wait_flag && !dm_task_set_cookie(dmt, cookie, (udev_sync)? 0 : DM_UDEV_DISABLE_LIBRARY_FALLBACK))
+ goto out;
+ r = dm_task_run(dmt);
+
+@@ -128,7 +128,7 @@ dm_addmap (int task, const char *name, c
+
+ dm_task_no_open_count(dmt);
+
+- if (task == DM_DEVICE_CREATE && !dm_task_set_cookie(dmt, cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK))
++ if (task == DM_DEVICE_CREATE && !dm_task_set_cookie(dmt, cookie, (udev_sync)? 0 : DM_UDEV_DISABLE_LIBRARY_FALLBACK))
+ goto addout;
+ r = dm_task_run (dmt);
+
+Index: multipath-tools-120821/kpartx/devmapper.h
+===================================================================
+--- multipath-tools-120821.orig/kpartx/devmapper.h
++++ multipath-tools-120821/kpartx/devmapper.h
+@@ -2,6 +2,8 @@
+ #define MINOR(dev) ((dev & 0xff) | ((dev >> 12) & 0xfff00))
+ #define MKDEV(ma,mi) ((mi & 0xff) | (ma << 8) | ((mi & ~0xff) << 12))
+
++extern int udev_sync;
++
+ int dm_prereq (char *, int, int, int);
+ int dm_simplecmd (int, const char *, int, uint32_t *);
+ int dm_addmap (int, const char *, const char *, const char *, uint64_t,
+Index: multipath-tools-120821/kpartx/kpartx.c
+===================================================================
+--- multipath-tools-120821.orig/kpartx/kpartx.c
++++ multipath-tools-120821/kpartx/kpartx.c
+@@ -56,6 +56,7 @@ struct pt {
+ } pts[MAXTYPES];
+
+ int ptct = 0;
++int udev_sync = 0;
+
+ static void
+ addpts(char *t, ptreader f)
+@@ -205,7 +206,6 @@ main(int argc, char **argv){
+ int loopro = 0;
+ int hotplug = 0;
+ int loopcreated = 0;
+- int sync = 0;
+ struct stat buf;
+ uint32_t cookie = 0;
+
+@@ -267,7 +267,7 @@ main(int argc, char **argv){
+ what = DELETE;
+ break;
+ case 's':
+- sync = 1;
++ udev_sync = 1;
+ break;
+ case 'u':
+ what = UPDATE;
+@@ -278,7 +278,7 @@ main(int argc, char **argv){
+ }
+
+ #ifdef LIBDM_API_COOKIE
+- if (!sync)
++ if (!udev_sync)
+ dm_udev_set_sync_support(0);
+ #endif
+
+Index: multipath-tools-120821/libmultipath/devmapper.c
+===================================================================
+--- multipath-tools-120821.orig/libmultipath/devmapper.c
++++ multipath-tools-120821/libmultipath/devmapper.c
+@@ -219,7 +219,7 @@ dm_simplecmd (int task, const char *name
+ dm_task_no_flush(dmt); /* for DM_DEVICE_SUSPEND/RESUME */
+ #endif
+
+- if (udev_wait_flag && !dm_task_set_cookie(dmt, &conf->cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK))
++ if (udev_wait_flag && !dm_task_set_cookie(dmt, &conf->cookie, (conf->daemon)? DM_UDEV_DISABLE_LIBRARY_FALLBACK : 0))
+ goto out;
+ r = dm_task_run (dmt);
+
+@@ -284,7 +284,7 @@ dm_addmap (int task, const char *target,
+ dm_task_no_open_count(dmt);
+
+ if (task == DM_DEVICE_CREATE &&
+- !dm_task_set_cookie(dmt, &conf->cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK))
++ !dm_task_set_cookie(dmt, &conf->cookie, (conf->daemon)? DM_UDEV_DISABLE_LIBRARY_FALLBACK : 0))
+ goto freeout;
+ r = dm_task_run (dmt);
+
+@@ -1244,7 +1244,7 @@ dm_rename (char * old, char * new)
+
+ dm_task_no_open_count(dmt);
+
+- if (!dm_task_set_cookie(dmt, &conf->cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK))
++ if (!dm_task_set_cookie(dmt, &conf->cookie, (conf->daemon)? DM_UDEV_DISABLE_LIBRARY_FALLBACK : 0))
+ goto out;
+ if (!dm_task_run(dmt))
+ goto out;
diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec
index fa7b355..2bf6f15 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: 40%{?dist}
+Release: 41%{?dist}
License: GPL+
Group: System Environment/Base
URL: http://christophe.varoqui.free.fr/
@@ -40,6 +40,7 @@ Patch0029: 0029-RH-kpartx-retry.patch
Patch0030: 0030-RH-early-blacklist.patch
Patch0031: 0031-RHBZ-882060-fix-null-strncmp.patch
Patch0032: 0032-RH-make-path-fd-readonly.patch
+Patch0033: 0033-RH-dont-disable-libdm-failback-for-sync-case.patch
# runtime
Requires: %{name}-libs = %{version}-%{release}
@@ -124,6 +125,7 @@ kpartx manages partition creation and removal for device-mapper devices.
%patch0030 -p1
%patch0031 -p1
%patch0032 -p1
+%patch0033 -p1
cp %{SOURCE1} .
%build
@@ -215,6 +217,11 @@ bin/systemctl --no-reload enable multipathd.service >/dev/null 2>&1 ||:
%{_mandir}/man8/kpartx.8.gz
%changelog
+* Mon Dec 17 2012 Benjamin Marzinski <bmarizns@redhat.com> 0.4.9-41
+- Add 0033-RH-dont-disable-libdm-failback-for-sync-case.patch
+ * make kpartx -s and multipath use libdm failback device creation, so
+ that they work in environments without udev
+
* Fri Nov 30 2012 Benjamin Marzinski <bmarizns@redhat.com> 0.4.9-40
- Add 0032-RH-make-path-fd-readonly.patch
* revert change made when adding persistent reservations, so that path fds