diff options
Diffstat (limited to 'bindings_file.patch')
| -rw-r--r-- | bindings_file.patch | 172 |
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 |
