summaryrefslogtreecommitdiffstats
path: root/bindings_file.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bindings_file.patch')
-rw-r--r--bindings_file.patch172
1 files changed, 172 insertions, 0 deletions
diff --git a/bindings_file.patch b/bindings_file.patch
new file mode 100644
index 0000000..209ad61
--- /dev/null
+++ b/bindings_file.patch
@@ -0,0 +1,172 @@
+Add the ability to change the location of the user_friendly_names
+binding file.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c | 11 ++++++++---
+ libmultipath/dict.c | 24 ++++++++++++++++++++++++
+ multipath.conf.annotated | 9 +++++++++
+ multipath.conf.defaults | 1 +
+ multipath/main.c | 4 +++-
+ multipath/multipath.conf.5 | 8 ++++++--
+ 6 files changed, 51 insertions(+), 6 deletions(-)
+
+Index: multipath-tools-090513/libmultipath/config.c
+===================================================================
+--- multipath-tools-090513.orig/libmultipath/config.c
++++ multipath-tools-090513/libmultipath/config.c
+@@ -405,6 +405,9 @@ free_config (struct config * conf)
+ if (conf->checker_name)
+ FREE(conf->checker_name);
+
++ if (conf->bindings_file)
++ FREE(conf->bindings_file);
++
+ free_blacklist(conf->blist_devnode);
+ free_blacklist(conf->blist_wwid);
+ free_blacklist_device(conf->blist_device);
+@@ -437,7 +440,6 @@ load_config (char * file)
+ conf->dev_type = DEV_NONE;
+ conf->minio = 1000;
+ conf->max_fds = 0;
+- conf->bindings_file = DEFAULT_BINDINGS_FILE;
+ conf->multipath_dir = set_default(DEFAULT_MULTIPATHDIR);
+ conf->flush_on_last_del = 0;
+ conf->attribute_flags = 0;
+@@ -535,9 +537,12 @@ load_config (char * file)
+ if (conf->hwhandler == NULL)
+ conf->hwhandler = set_default(DEFAULT_HWHANDLER);
+
++ if (conf->bindings_file == NULL)
++ conf->bindings_file = set_default(DEFAULT_BINDINGS_FILE);
++
+ if (!conf->selector || !conf->udev_dir || !conf->multipath_dir ||
+- !conf->getuid || !conf->features ||
+- !conf->hwhandler)
++ !conf->getuid || !conf->features || !conf->hwhandler ||
++ !conf->bindings_file)
+ goto out;
+
+ if (!conf->prio_name)
+Index: multipath-tools-090513/libmultipath/dict.c
+===================================================================
+--- multipath-tools-090513.orig/libmultipath/dict.c
++++ multipath-tools-090513/libmultipath/dict.c
+@@ -423,6 +423,17 @@ names_handler(vector strvec)
+ return 0;
+ }
+
++static int
++def_bindings_file_handler(vector strvec)
++{
++ conf->bindings_file = set_value(strvec);
++
++ if (!conf->bindings_file)
++ return 1;
++
++ return 0;
++}
++
+ /*
+ * blacklist block handlers
+ */
+@@ -1920,6 +1931,18 @@ snprint_def_user_friendly_names (char *
+ }
+
+ static int
++snprint_def_bindings_file(char * buff, int len, void * data)
++{
++ if (conf->bindings_file == NULL)
++ return 0;
++ if (strlen(conf->bindings_file) == strlen(DEFAULT_BINDINGS_FILE) &&
++ !strcmp(conf->bindings_file, DEFAULT_BINDINGS_FILE))
++ return 0;
++
++ return snprintf(buff, len, "%s", conf->bindings_file);
++}
++
++static int
+ snprint_ble_simple (char * buff, int len, void * data)
+ {
+ struct blentry * ble = (struct blentry *)data;
+@@ -1969,6 +1992,7 @@ init_keywords(void)
+ install_keyword("pg_timeout", &def_pg_timeout_handler, &snprint_def_pg_timeout);
+ install_keyword("flush_on_last_del", &def_flush_on_last_del_handler, &snprint_def_flush_on_last_del);
+ install_keyword("user_friendly_names", &names_handler, &snprint_def_user_friendly_names);
++ install_keyword("bindings_file", &def_bindings_file_handler, &snprint_def_bindings_file);
+ install_keyword("mode", &def_mode_handler, &snprint_def_mode);
+ install_keyword("uid", &def_uid_handler, &snprint_def_uid);
+ install_keyword("gid", &def_gid_handler, &snprint_def_gid);
+Index: multipath-tools-090513/multipath.conf.annotated
+===================================================================
+--- multipath-tools-090513.orig/multipath.conf.annotated
++++ multipath-tools-090513/multipath.conf.annotated
+@@ -198,6 +198,15 @@
+ # # default : determined by the process
+ # gid disk
+ #
++# #
++# # name : bindings_file
++# # scope : multipath
++# # desc : The location of the bindings file that is used with
++# the user_friendly_names option
++# # values : <full_pathname>
++# # default : "/var/lib/multipath/bindings"
++# bindings_file "/etc/multipath_bindings"
++#
+ #}
+ #
+ ##
+Index: multipath-tools-090513/multipath.conf.defaults
+===================================================================
+--- multipath-tools-090513.orig/multipath.conf.defaults
++++ multipath-tools-090513/multipath.conf.defaults
+@@ -14,6 +14,7 @@
+ # failback manual
+ # no_path_retry fail
+ # user_friendly_names no
++# bindings_file "/var/lib/multipath/bindings"
+ #}
+ #
+ #blacklist {
+Index: multipath-tools-090513/multipath/main.c
+===================================================================
+--- multipath-tools-090513.orig/multipath/main.c
++++ multipath-tools-090513/multipath/main.c
+@@ -362,7 +362,9 @@ main (int argc, char *argv[])
+ conf->verbosity = atoi(optarg);
+ break;
+ case 'b':
+- conf->bindings_file = optarg;
++ if (conf->bindings_file)
++ FREE(conf->bindings_file);
++ conf->bindings_file = STRDUP(optarg);
+ break;
+ case 'd':
+ conf->dry_run = 1;
+Index: multipath-tools-090513/multipath/multipath.conf.5
+===================================================================
+--- multipath-tools-090513.orig/multipath/multipath.conf.5
++++ multipath-tools-090513/multipath/multipath.conf.5
+@@ -221,8 +221,7 @@ for never stop queueing. Default is 0.
+ .B user_friendly_names
+ If set to
+ .I yes
+-, using the bindings file
+-.I /var/lib/multipath/bindings
++, using the bindings file (by default \fI/var/lib/multipath/bindings\fR)
+ to assign a persistent and unique alias to the multipath, in the form of mpath<n>.
+ If set to
+ .I no
+@@ -231,6 +230,11 @@ be overriden by any specific aliases in
+ Default is
+ .I no
+ .TP
++.B bindings_file
++Specify the location of the bindings file used by the user_friendly_names
++option. Default is
++.I /var/lib/multipath/bindings
++.TP
+ .B max_fds
+ Specify the maximum number of file descriptors that can be opened by multipath
+ and multipathd. This is equivalent to ulimit -n. A value of \fImax\fR will set