summaryrefslogtreecommitdiffstats
path: root/0071-RHBZ-1031546-strip-dev.patch
diff options
context:
space:
mode:
Diffstat (limited to '0071-RHBZ-1031546-strip-dev.patch')
-rw-r--r--0071-RHBZ-1031546-strip-dev.patch248
1 files changed, 248 insertions, 0 deletions
diff --git a/0071-RHBZ-1031546-strip-dev.patch b/0071-RHBZ-1031546-strip-dev.patch
new file mode 100644
index 0000000..64118c2
--- /dev/null
+++ b/0071-RHBZ-1031546-strip-dev.patch
@@ -0,0 +1,248 @@
+---
+ libmultipath/util.c | 22 ++++++++++++++++++++++
+ libmultipath/util.h | 1 +
+ multipath/main.c | 23 +----------------------
+ multipathd/cli_handlers.c | 18 ++++++++++++++++++
+ 4 files changed, 42 insertions(+), 22 deletions(-)
+
+Index: multipath-tools-130222/libmultipath/util.c
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/util.c
++++ multipath-tools-130222/libmultipath/util.c
+@@ -236,6 +236,28 @@ skip_proc:
+ return 0;
+ }
+
++/* This function returns a pointer inside of the supplied pathname string.
++ * If is_path_device is true, it may also modify the supplied string */
++char *convert_dev(char *name, int is_path_device)
++{
++ char *ptr;
++
++ if (!name)
++ return NULL;
++ if (is_path_device) {
++ ptr = strstr(name, "cciss/");
++ if (ptr) {
++ ptr += 5;
++ *ptr = '!';
++ }
++ }
++ if (!strncmp(name, "/dev/", 5) && strlen(name) > 5)
++ ptr = name + 5;
++ else
++ ptr = name;
++ return ptr;
++}
++
+ dev_t parse_devt(const char *dev_t)
+ {
+ int maj, min;
+Index: multipath-tools-130222/libmultipath/util.h
+===================================================================
+--- multipath-tools-130222.orig/libmultipath/util.h
++++ multipath-tools-130222/libmultipath/util.h
+@@ -10,6 +10,7 @@ size_t strlcat(char *dst, const char *sr
+ void remove_trailing_chars(char *path, char c);
+ int devt2devname (char *, int, char *);
+ dev_t parse_devt(const char *dev_t);
++char *convert_dev(char *dev, int is_path_device);
+
+ #define safe_sprintf(var, format, args...) \
+ snprintf(var, sizeof(var), format, ##args) >= sizeof(var)
+Index: multipath-tools-130222/multipath/main.c
+===================================================================
+--- multipath-tools-130222.orig/multipath/main.c
++++ multipath-tools-130222/multipath/main.c
+@@ -254,16 +254,7 @@ configure (void)
+ vecs.pathvec = pathvec;
+ vecs.mpvec = curmp;
+
+- /*
+- * dev is "/dev/" . "sysfs block dev"
+- */
+- if (conf->dev) {
+- if (!strncmp(conf->dev, "/dev/", 5) &&
+- strlen(conf->dev) > 5)
+- dev = conf->dev + 5;
+- else
+- dev = conf->dev;
+- }
++ dev = convert_dev(conf->dev, (conf->dev_type == DEV_DEVNODE));
+
+ /*
+ * if we have a blacklisted device parameter, exit early
+@@ -427,16 +418,6 @@ get_dev_type(char *dev) {
+ return DEV_DEVMAP;
+ }
+
+-static void
+-convert_dev(char *dev)
+-{
+- char *ptr = strstr(dev, "cciss/");
+- if (ptr) {
+- ptr += 5;
+- *ptr = '!';
+- }
+-}
+-
+ int
+ main (int argc, char *argv[])
+ {
+@@ -577,8 +558,6 @@ main (int argc, char *argv[])
+
+ strncpy(conf->dev, argv[optind], FILE_NAME_SIZE);
+ conf->dev_type = get_dev_type(conf->dev);
+- if (conf->dev_type == DEV_DEVNODE)
+- convert_dev(conf->dev);
+ }
+ conf->daemon = 0;
+
+Index: multipath-tools-130222/multipathd/cli_handlers.c
+===================================================================
+--- multipath-tools-130222.orig/multipathd/cli_handlers.c
++++ multipath-tools-130222/multipathd/cli_handlers.c
+@@ -235,6 +235,7 @@ cli_list_map_topology (void * v, char **
+ struct vectors * vecs = (struct vectors *)data;
+ char * param = get_keyparam(v, MAP);
+
++ param = convert_dev(param, 0);
+ get_path_layout(vecs->pathvec, 0);
+ mpp = find_mp_by_str(vecs->mpvec, param);
+
+@@ -416,6 +417,7 @@ cli_add_path (void * v, char ** reply, i
+ struct path *pp;
+ int r;
+
++ param = convert_dev(param, 1);
+ condlog(2, "%s: add path (operator)", param);
+
+ if (filter_devnode(conf->blist_devnode, conf->elist_devnode,
+@@ -459,6 +461,7 @@ cli_del_path (void * v, char ** reply, i
+ char * param = get_keyparam(v, PATH);
+ struct path *pp;
+
++ param = convert_dev(param, 1);
+ condlog(2, "%s: remove path (operator)", param);
+ pp = find_path_by_dev(vecs->pathvec, param);
+ if (!pp) {
+@@ -478,6 +481,7 @@ cli_add_map (void * v, char ** reply, in
+ char *alias;
+ int rc;
+
++ param = convert_dev(param, 0);
+ condlog(2, "%s: add map (operator)", param);
+
+ if (filter_wwid(conf->blist_wwid, conf->elist_wwid, param) > 0) {
+@@ -518,6 +522,7 @@ cli_del_map (void * v, char ** reply, in
+ char *alias;
+ int rc;
+
++ param = convert_dev(param, 0);
+ condlog(2, "%s: remove map (operator)", param);
+ minor = dm_get_minor(param);
+ if (minor < 0) {
+@@ -549,6 +554,7 @@ cli_reload(void *v, char **reply, int *l
+ struct multipath *mpp;
+ int minor;
+
++ mapname = convert_dev(mapname, 0);
+ condlog(2, "%s: reload map (operator)", mapname);
+ if (sscanf(mapname, "dm-%d", &minor) == 1)
+ mpp = find_mp_by_minor(vecs->mpvec, minor);
+@@ -591,6 +597,7 @@ cli_resize(void *v, char **reply, int *l
+ struct pathgroup *pgp;
+ struct path *pp;
+
++ mapname = convert_dev(mapname, 0);
+ condlog(2, "%s: resize map (operator)", mapname);
+ if (sscanf(mapname, "dm-%d", &minor) == 1)
+ mpp = find_mp_by_minor(vecs->mpvec, minor);
+@@ -665,6 +672,7 @@ cli_restore_queueing(void *v, char **rep
+ struct multipath *mpp;
+ int minor;
+
++ mapname = convert_dev(mapname, 0);
+ condlog(2, "%s: restore map queueing (operator)", mapname);
+ if (sscanf(mapname, "dm-%d", &minor) == 1)
+ mpp = find_mp_by_minor(vecs->mpvec, minor);
+@@ -716,6 +724,7 @@ cli_disable_queueing(void *v, char **rep
+ struct multipath *mpp;
+ int minor;
+
++ mapname = convert_dev(mapname, 0);
+ condlog(2, "%s: disable map queueing (operator)", mapname);
+ if (sscanf(mapname, "dm-%d", &minor) == 1)
+ mpp = find_mp_by_minor(vecs->mpvec, minor);
+@@ -753,6 +762,7 @@ cli_switch_group(void * v, char ** reply
+ char * mapname = get_keyparam(v, MAP);
+ int groupnum = atoi(get_keyparam(v, GROUP));
+
++ mapname = convert_dev(mapname, 0);
+ condlog(2, "%s: switch to path group #%i (operator)", mapname, groupnum);
+
+ return dm_switchgroup(mapname, groupnum);
+@@ -775,6 +785,7 @@ cli_suspend(void * v, char ** reply, int
+ char * param = get_keyparam(v, MAP);
+ int r = dm_simplecmd_noflush(DM_DEVICE_SUSPEND, param);
+
++ param = convert_dev(param, 0);
+ condlog(2, "%s: suspend (operator)", param);
+
+ if (!r) /* error */
+@@ -796,6 +807,7 @@ cli_resume(void * v, char ** reply, int
+ char * param = get_keyparam(v, MAP);
+ int r = dm_simplecmd_noflush(DM_DEVICE_RESUME, param);
+
++ param = convert_dev(param, 0);
+ condlog(2, "%s: resume (operator)", param);
+
+ if (!r) /* error */
+@@ -817,6 +829,7 @@ cli_reinstate(void * v, char ** reply, i
+ char * param = get_keyparam(v, PATH);
+ struct path * pp;
+
++ param = convert_dev(param, 1);
+ pp = find_path_by_dev(vecs->pathvec, param);
+
+ if (!pp)
+@@ -837,6 +850,7 @@ cli_reassign (void * v, char ** reply, i
+ {
+ char * param = get_keyparam(v, MAP);
+
++ param = convert_dev(param, 0);
+ condlog(3, "%s: reset devices (operator)", param);
+
+ dm_reassign(param);
+@@ -851,6 +865,7 @@ cli_fail(void * v, char ** reply, int *
+ struct path * pp;
+ int r;
+
++ param = convert_dev(param, 1);
+ pp = find_path_by_dev(vecs->pathvec, param);
+
+ if (!pp)
+@@ -962,6 +977,7 @@ cli_getprstatus (void * v, char ** reply
+ struct vectors * vecs = (struct vectors *)data;
+ char * param = get_keyparam(v, MAP);
+
++ param = convert_dev(param, 0);
+ get_path_layout(vecs->pathvec, 0);
+ mpp = find_mp_by_str(vecs->mpvec, param);
+
+@@ -991,6 +1007,7 @@ cli_setprstatus(void * v, char ** reply,
+ struct vectors * vecs = (struct vectors *)data;
+ char * param = get_keyparam(v, MAP);
+
++ param = convert_dev(param, 0);
+ get_path_layout(vecs->pathvec, 0);
+ mpp = find_mp_by_str(vecs->mpvec, param);
+
+@@ -1013,6 +1030,7 @@ cli_unsetprstatus(void * v, char ** repl
+ struct vectors * vecs = (struct vectors *)data;
+ char * param = get_keyparam(v, MAP);
+
++ param = convert_dev(param, 0);
+ get_path_layout(vecs->pathvec, 0);
+ mpp = find_mp_by_str(vecs->mpvec, param);
+