diff --git a/0022-RHBZ-864368-disable-libdm-failback.patch b/0022-RHBZ-864368-disable-libdm-failback.patch new file mode 100644 index 0000000..e04f97b --- /dev/null +++ b/0022-RHBZ-864368-disable-libdm-failback.patch @@ -0,0 +1,58 @@ +--- + kpartx/devmapper.c | 4 ++-- + libmultipath/devmapper.c | 6 +++--- + 2 files changed, 5 insertions(+), 5 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, 0)) ++ if (udev_wait_flag && !dm_task_set_cookie(dmt, cookie, 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, 0)) ++ if (task == DM_DEVICE_CREATE && !dm_task_set_cookie(dmt, cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK)) + goto addout; + r = dm_task_run (dmt); + +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, 0)) ++ if (udev_wait_flag && !dm_task_set_cookie(dmt, &conf->cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK)) + 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, 0)) ++ !dm_task_set_cookie(dmt, &conf->cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK)) + 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, 0)) ++ if (!dm_task_set_cookie(dmt, &conf->cookie, DM_UDEV_DISABLE_LIBRARY_FALLBACK)) + goto out; + if (!dm_task_run(dmt)) + goto out; diff --git a/0023-RHBZ-866291-update-documentation.patch b/0023-RHBZ-866291-update-documentation.patch new file mode 100644 index 0000000..d898341 --- /dev/null +++ b/0023-RHBZ-866291-update-documentation.patch @@ -0,0 +1,107 @@ +--- + multipath/main.c | 1 + + multipath/multipath.8 | 14 +++++++++++++- + multipath/multipath.conf.5 | 31 +++++++++++++++++++++++++++++++ + 3 files changed, 45 insertions(+), 1 deletion(-) + +Index: multipath-tools-120821/multipath/main.c +=================================================================== +--- multipath-tools-120821.orig/multipath/main.c ++++ multipath-tools-120821/multipath/main.c +@@ -101,6 +101,7 @@ usage (char * progname) + " -d dry run, do not create or update devmaps\n" \ + " -t dump internal hardware table\n" \ + " -r force devmap reload\n" \ ++ " -B treat the bindings file as read only\n" \ + " -p policy failover|multibus|group_by_serial|group_by_prio\n" \ + " -b fil bindings file location\n" \ + " -p pol force all maps to specified path grouping policy :\n" \ +Index: multipath-tools-120821/multipath/multipath.8 +=================================================================== +--- multipath-tools-120821.orig/multipath/multipath.8 ++++ multipath-tools-120821/multipath/multipath.8 +@@ -5,8 +5,10 @@ multipath \- Device mapper target autoco + .B multipath + .RB [\| \-v\ \c + .IR verbosity \|] ++.RB [\| \-b\ \c ++.IR bindings_file \|] + .RB [\| \-d \|] +-.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F \| \-B \|] ++.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r \|] + .RB [\| \-p\ \c + .BR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|] + .RB [\| device \|] +@@ -56,6 +58,16 @@ force devmap reload + .B \-B + treat the bindings file as read only + .TP ++.B \-b " bindings_file" ++set user_friendly_names bindings file location. The default is ++/etc/multipath/bindings ++.TP ++.B \-c ++check if a block device should be a path in a multipath device ++.TP ++.B \-q ++allow device tables with queue_if_no_path when multipathd is not running ++.TP + .BI \-p " policy" + force new maps to use the specified policy: + .RS 1.2i +Index: multipath-tools-120821/multipath/multipath.conf.5 +=================================================================== +--- multipath-tools-120821.orig/multipath/multipath.conf.5 ++++ multipath-tools-120821/multipath/multipath.conf.5 +@@ -369,6 +369,31 @@ errors are logged at level 3 until the d + .I always + , multipathd always logs the path checker error at logging level 2. Default is + .I always ++.TP ++.B reservation_key ++This is the service action reservation key used by mpathpersist. It must be ++set for all multipath devices using persistent reservations, and it must be ++the same as the RESERVATION KEY field of the PERSISTENT RESERVE OUT parameter ++list which contains an 8-byte value provided by the application client to the ++device server to identify the I_T nexus. It is unset by default. ++.TP ++.B retain_attached_hw_handler ++If set to ++.I yes ++and the scsi layer has already attached a hardware_handler to the device, ++multipath will not force the device to use the hardware_handler specified by ++mutipath.conf. If the scsi layer has not attached a hardware handler, ++multipath will continue to use its configured hardware handler. Default is ++.I no ++.TP ++.B detect_prio ++If set to ++.I yes ++, multipath will try to detect if the device supports ALUA. If so, the device ++will automatically use the ++.I alua ++prioritizer. If not, the prioritizer will be selected as usual. Default is ++.I no + . + .SH "blacklist section" + The +@@ -468,6 +493,8 @@ section: + .B rr_min_io_q + .TP + .B features ++.TP ++.B reservation_key + .RE + .PD + .LP +@@ -554,6 +581,10 @@ section: + .B dev_loss_tmo + .TP + .B flush_on_last_del ++.TP ++.B retain_attached_hw_handler ++.TP ++.B detect_prio + .RE + .PD + .LP diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec index d0da029..ae29ff1 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: 34%{?dist} +Release: 35%{?dist} License: GPL+ Group: System Environment/Base URL: http://christophe.varoqui.free.fr/ @@ -29,6 +29,8 @@ Patch0018: 0018-RH-remove-config-dups.patch Patch0019: 0019-RH-detect-prio.patch Patch0020: 0020-RH-netapp-config.patch Patch0021: 0021-RH-fix-oom-adj.patch +Patch0022: 0022-RHBZ-864368-disable-libdm-failback.patch +Patch0023: 0023-RHBZ-866291-update-documentation.patch # runtime Requires: %{name}-libs = %{version}-%{release} @@ -102,6 +104,8 @@ kpartx manages partition creation and removal for device-mapper devices. %patch0019 -p1 %patch0020 -p1 %patch0021 -p1 +%patch0022 -p1 +%patch0023 -p1 cp %{SOURCE1} . %build @@ -188,6 +192,12 @@ bin/systemctl --no-reload enable multipathd.service >/dev/null 2>&1 ||: %{_mandir}/man8/kpartx.8.gz %changelog +* Thu Oct 24 2012 Benjamin Marzinski 0.4.9-35 +- Add 0022-RHBZ-864368-disable-libdm-failback.patch + * make kpartx and multiapthd disable libdm failback device creation +- Add 0023-RHBZ-866291-update-documentation.patch +- Resolves: bz #864368, #866291 + * Wed Oct 23 2012 Benjamin Marzinski 0.4.9-34 - Add 0021-RH-fix-oom-adj.patch * don't use OOM_ADJUST_MIN unless you're sure it's defined