summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0032-RHBZ-956464-mpathconf-defaults.patch19
-rw-r--r--0033-RHBZ-829963-e-series-conf.patch44
-rw-r--r--0034-RHBZ-851416-mpathconf-display.patch53
-rw-r--r--0035-RHBZ-891921-list-mpp.patch33
-rw-r--r--0036-RHBZ-949239-load-multipath-module.patch16
-rw-r--r--0037-RHBZ-768873-fix-rename.patch87
-rw-r--r--device-mapper-multipath.spec32
-rw-r--r--multipath.conf12
8 files changed, 291 insertions, 5 deletions
diff --git a/0032-RHBZ-956464-mpathconf-defaults.patch b/0032-RHBZ-956464-mpathconf-defaults.patch
new file mode 100644
index 0000000..d63c32e
--- /dev/null
+++ b/0032-RHBZ-956464-mpathconf-defaults.patch
@@ -0,0 +1,19 @@
+---
+ multipath/mpathconf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: multipath-tools-130222/multipath/mpathconf
+===================================================================
+--- multipath-tools-130222.orig/multipath/mpathconf
++++ multipath-tools-130222/multipath/mpathconf
+@@ -31,8 +31,8 @@ function usage
+ echo "Commands:"
+ echo "Enable: --enable "
+ echo "Disable: --disable"
+- echo "Set user_friendly_names (Default n): --user_friendly_names <y|n>"
+- echo "Set find_multipaths (Default n): --find_multipaths <y|n>"
++ echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
++ echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
+ echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
+ echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
+ echo ""
diff --git a/0033-RHBZ-829963-e-series-conf.patch b/0033-RHBZ-829963-e-series-conf.patch
new file mode 100644
index 0000000..d8fc119
--- /dev/null
+++ b/0033-RHBZ-829963-e-series-conf.patch
@@ -0,0 +1,44 @@
+This patch provides hwtable updates for NETAPP/LSI/ENGENIO E-Series arrays,
+utilizing new features to detect TPGS support, automatically.
+
+Signed-off-by: Sean Stewart <Sean.Stewart@netapp.com>
+
+---
+---
+ libmultipath/hwtable.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+Index: multipath-tools-130222/libmultipath/hwtable.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/hwtable.c
++++ multipath-tools-130222/libmultipath/hwtable.c
+@@ -1046,9 +1046,13 @@ static struct hwentry default_hw[] = {
+ .checker_name = RDAC,
+ .prio_name = PRIO_RDAC,
+ },
+- /* LSI/Engenio/NetApp E-Series RDAC storage */
++ /* LSI/Engenio/NetApp E-Series RDAC storage
++ *
++ * Maintainer : Sean Stewart
++ * Mail : sean.stewart@netapp.com
++ */
+ {
+- .vendor = "(LSI|ENGENIO)",
++ .vendor = "(NETAPP|LSI|ENGENIO)",
+ .product = "INF-01-00",
+ .bl_product = "Universal Xport",
+ .features = "2 pg_init_retries 50",
+@@ -1056,10 +1060,12 @@ static struct hwentry default_hw[] = {
+ .pgpolicy = GROUP_BY_PRIO,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .rr_weight = RR_WEIGHT_NONE,
+- .no_path_retry = 15,
++ .no_path_retry = 30,
+ .checker_name = RDAC,
+ .prio_name = PRIO_RDAC,
+ .prio_args = NULL,
++ .detect_prio = DETECT_PRIO_ON,
++ .retain_hwhandler = RETAIN_HWHANDLER_ON,
+ },
+ {
+ .vendor = "STK",
diff --git a/0034-RHBZ-851416-mpathconf-display.patch b/0034-RHBZ-851416-mpathconf-display.patch
new file mode 100644
index 0000000..e9e00ce
--- /dev/null
+++ b/0034-RHBZ-851416-mpathconf-display.patch
@@ -0,0 +1,53 @@
+---
+ multipath/mpathconf | 21 +++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
+
+Index: multipath-tools-130222/multipath/mpathconf
+===================================================================
+--- multipath-tools-130222.orig/multipath/mpathconf
++++ multipath-tools-130222/multipath/mpathconf
+@@ -159,7 +159,7 @@ if [ -z "$MODULE" -o "$MODULE" = "y" ];
+ fi
+
+ if [ "$MULTIPATHD" = "y" ]; then
+- if service multipathd status > /dev/null ; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
+ HAVE_MULTIPATHD=1
+ else
+ HAVE_MULTIPATHD=0
+@@ -210,8 +210,17 @@ if [ -n "$SHOW_STATUS" ]; then
+ echo "dm_multipath module is not loaded"
+ fi
+ fi
+- if [ -n "$HAVE_MULTIPATHD" ]; then
+- service multipathd status
++ if [ -z "$HAVE_MULTIPATHD" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++ fi
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ echo "multipathd is running"
++ else
++ echo "multipathd is not running"
+ fi
+ exit 0
+ fi
+@@ -301,12 +310,12 @@ if [ "$ENABLE" = 1 ]; then
+ modprobe dm_multipath
+ fi
+ if [ "$HAVE_MULTIPATHD" = 0 ]; then
+- service multipathd start
++ systemctl start multipathd.service
+ fi
+ elif [ "$ENABLE" = 0 ]; then
+ if [ "$HAVE_MULTIPATHD" = 1 ]; then
+- service multipathd stop
++ systemctl stop multipathd.service
+ fi
+ elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
+- service multipathd reload
++ systemctl reload multipathd.service
+ fi
diff --git a/0035-RHBZ-891921-list-mpp.patch b/0035-RHBZ-891921-list-mpp.patch
new file mode 100644
index 0000000..b0bb7a2
--- /dev/null
+++ b/0035-RHBZ-891921-list-mpp.patch
@@ -0,0 +1,33 @@
+---
+ libmultipath/print.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+Index: multipath-tools-130222/libmultipath/print.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/print.c
++++ multipath-tools-130222/libmultipath/print.c
+@@ -422,6 +422,16 @@ snprint_path_serial (char * buff, size_t
+ }
+
+ static int
++snprint_path_mpp (char * buff, size_t len, struct path * pp)
++{
++ if (!pp->mpp)
++ return snprintf(buff, len, "[orphan]");
++ if (!pp->mpp->alias)
++ return snprintf(buff, len, "[unknown]");
++ return snprint_str(buff, len, pp->mpp->alias);
++}
++
++static int
+ snprint_path_checker (char * buff, size_t len, struct path * pp)
+ {
+ struct checker * c = &pp->checker;
+@@ -464,6 +474,7 @@ struct path_data pd[] = {
+ {'p', "pri", 0, snprint_pri},
+ {'S', "size", 0, snprint_path_size},
+ {'z', "serial", 0, snprint_path_serial},
++ {'m', "multipath", 0, snprint_path_mpp},
+ {0, NULL, 0 , NULL}
+ };
+
diff --git a/0036-RHBZ-949239-load-multipath-module.patch b/0036-RHBZ-949239-load-multipath-module.patch
new file mode 100644
index 0000000..04a6f68
--- /dev/null
+++ b/0036-RHBZ-949239-load-multipath-module.patch
@@ -0,0 +1,16 @@
+---
+ multipathd/multipathd.service | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: multipath-tools-130222/multipathd/multipathd.service
+===================================================================
+--- multipath-tools-130222.orig/multipathd/multipathd.service
++++ multipath-tools-130222/multipathd/multipathd.service
+@@ -10,6 +10,7 @@ Conflicts=shutdown.target
+ [Service]
+ Type=forking
+ PIDFile=/var/run/multipathd.pid
++ExecStartPre=/sbin/modprobe dm-multipath
+ ExecStart=/sbin/multipathd
+ ExecReload=/sbin/multipathd reconfigure
+ #ExecStop=/path/to/scrip delete-me if not necessary
diff --git a/0037-RHBZ-768873-fix-rename.patch b/0037-RHBZ-768873-fix-rename.patch
new file mode 100644
index 0000000..7e05bd0
--- /dev/null
+++ b/0037-RHBZ-768873-fix-rename.patch
@@ -0,0 +1,87 @@
+---
+ libmultipath/devmapper.c | 45 ---------------------------------------------
+ libmultipath/devmapper.h | 1 -
+ libmultipath/propsel.c | 2 --
+ 3 files changed, 48 deletions(-)
+
+Index: multipath-tools-130222/libmultipath/devmapper.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/devmapper.c
++++ multipath-tools-130222/libmultipath/devmapper.c
+@@ -917,51 +917,6 @@ out:
+ return r;
+ }
+
+-extern char *
+-dm_get_name(char *uuid)
+-{
+- struct dm_task *dmt;
+- struct dm_info info;
+- char *prefixed_uuid, *name = NULL;
+- const char *nametmp;
+-
+- dmt = dm_task_create(DM_DEVICE_INFO);
+- if (!dmt)
+- return NULL;
+-
+- prefixed_uuid = MALLOC(UUID_PREFIX_LEN + strlen(uuid) + 1);
+- if (!prefixed_uuid) {
+- condlog(0, "cannot create prefixed uuid : %s",
+- strerror(errno));
+- goto freeout;
+- }
+- sprintf(prefixed_uuid, UUID_PREFIX "%s", uuid);
+- if (!dm_task_set_uuid(dmt, prefixed_uuid))
+- goto freeout;
+-
+- if (!dm_task_run(dmt))
+- goto freeout;
+-
+- if (!dm_task_get_info(dmt, &info) || !info.exists)
+- goto freeout;
+-
+- nametmp = dm_task_get_name(dmt);
+- if (nametmp && strlen(nametmp)) {
+- name = MALLOC(strlen(nametmp) + 1);
+- if (name)
+- strcpy(name, nametmp);
+- } else {
+- condlog(2, "%s: no device-mapper name found", uuid);
+- }
+-
+-freeout:
+- if (prefixed_uuid)
+- FREE(prefixed_uuid);
+- dm_task_destroy(dmt);
+-
+- return name;
+-}
+-
+ int
+ dm_geteventnr (char *name)
+ {
+Index: multipath-tools-130222/libmultipath/devmapper.h
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/devmapper.h
++++ multipath-tools-130222/libmultipath/devmapper.h
+@@ -40,7 +40,6 @@ int dm_remove_partmaps (const char * map
+ int dm_get_uuid(char *name, char *uuid);
+ int dm_get_info (char * mapname, struct dm_info ** dmi);
+ int dm_rename (char * old, char * new);
+-char * dm_get_name(char * uuid);
+ int dm_reassign(const char * mapname);
+ int dm_reassign_table(const char *name, char *old, char *new);
+ int dm_setgeometry(struct multipath *mpp);
+Index: multipath-tools-130222/libmultipath/propsel.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/propsel.c
++++ multipath-tools-130222/libmultipath/propsel.c
+@@ -263,8 +263,6 @@ select_alias (struct multipath * mp)
+ conf->bindings_file, mp->alias_prefix, conf->bindings_read_only);
+ }
+ if (mp->alias == NULL)
+- mp->alias = dm_get_name(mp->wwid);
+- if (mp->alias == NULL)
+ mp->alias = STRDUP(mp->wwid);
+ }
+
diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec
index 315bb91..d7f8b6b 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: 50%{?dist}
+Release: 51%{?dist}
License: GPL+
Group: System Environment/Base
URL: http://christophe.varoqui.free.fr/
@@ -39,6 +39,12 @@ Patch0028: 0028-RHBZ-929078-refresh-udev-dev.patch
Patch0029: 0029-RH-no-prio-put-msg.patch
Patch0030: 0030-RHBZ-916528-override-queue-no-daemon.patch
Patch0031: 0031-RHBZ-957188-kpartx-use-dm-name.patch
+Patch0032: 0032-RHBZ-956464-mpathconf-defaults.patch
+Patch0033: 0033-RHBZ-829963-e-series-conf.patch
+Patch0034: 0034-RHBZ-851416-mpathconf-display.patch
+Patch0035: 0035-RHBZ-891921-list-mpp.patch
+Patch0036: 0036-RHBZ-949239-load-multipath-module.patch
+Patch0037: 0037-RHBZ-768873-fix-rename.patch
# runtime
Requires: %{name}-libs = %{version}-%{release}
@@ -122,6 +128,12 @@ kpartx manages partition creation and removal for device-mapper devices.
%patch0029 -p1
%patch0030 -p1
%patch0031 -p1
+%patch0032 -p1
+%patch0033 -p1
+%patch0034 -p1
+%patch0035 -p1
+%patch0036 -p1
+%patch0037 -p1
cp %{SOURCE1} .
%build
@@ -215,6 +227,24 @@ bin/systemctl --no-reload enable multipathd.service >/dev/null 2>&1 ||:
%{_mandir}/man8/kpartx.8.gz
%changelog
+* Fri May 17 2013 Benjamin Marzinski <bmarzins@redhat.com> 0.4.9-51
+- Add 0032-RHBZ-956464-mpathconf-defaults.patch
+ * fix defaults listed in usage
+- Add 0033-RHBZ-829963-e-series-conf.patch
+- Add 0034-RHBZ-851416-mpathconf-display.patch
+ * display whether or not multipathd is running in the status
+- Add 0035-RHBZ-891921-list-mpp.patch
+ * add a new path format wilcard to list the multipath device associated
+ with a path
+- Add 0036-RHBZ-949239-load-multipath-module.patch
+ * load the dm-multipath kernel module when multipathd starts
+- Add 0037-RHBZ-768873-fix-rename.patch
+ * When deciding on a multipth devices name on reload, don't default to
+ the existing name if there is no config file alias and user_friendly_names
+ isn't set. Use the wwid.
+- Modify multipath.conf
+- Resolves: bz #768873, #950252
+
* Tue Apr 30 2013 Benjamin Marzinski <bmarzins@redhat.com> 0.4.9-50
- Add 0031-RHBZ-957188-kpartx-use-dm-name.patch
* use the basename of the devices that will be created to choose the
diff --git a/multipath.conf b/multipath.conf
index e40420f..401992b 100644
--- a/multipath.conf
+++ b/multipath.conf
@@ -1,9 +1,13 @@
# This is a basic configuration file with some examples, for device mapper
# multipath.
-# For a complete list of the default configuration values, see
-# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
-# For a list of configuration options with descriptions, see
-# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated
+#
+# For a complete list of the default configuration values, run either
+# multipath -t
+# or
+# multipathd show config
+#
+# For a list of configuration options with descriptions, see the multipath.conf
+# man page
## By default, devices with vendor = "IBM" and product = "S/390.*" are
## blacklisted. To enable mulitpathing on these devies, uncomment the