You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.8 KiB
113 lines
3.8 KiB
--- |
|
libmultipath/config.c | 4 ++++ |
|
libmultipath/config.h | 1 + |
|
libmultipath/configure.c | 3 +++ |
|
libmultipath/dict.c | 33 +++++++++++++++++++++++++++++++++ |
|
4 files changed, 41 insertions(+) |
|
|
|
Index: multipath-tools-130222/libmultipath/configure.c |
|
=================================================================== |
|
--- multipath-tools-130222.orig/libmultipath/configure.c |
|
+++ multipath-tools-130222/libmultipath/configure.c |
|
@@ -422,6 +422,9 @@ select_action (struct multipath * mpp, v |
|
condlog(2, "%s: unable to rename %s to %s (%s is used by %s)", |
|
mpp->wwid, cmpp->alias, mpp->alias, |
|
mpp->alias, cmpp_by_name->wwid); |
|
+ /* reset alias to existing alias */ |
|
+ FREE(mpp->alias); |
|
+ mpp->alias = STRDUP(cmpp->alias); |
|
mpp->action = ACT_NOTHING; |
|
return; |
|
} |
|
Index: multipath-tools-130222/libmultipath/config.c |
|
=================================================================== |
|
--- multipath-tools-130222.orig/libmultipath/config.c |
|
+++ multipath-tools-130222/libmultipath/config.c |
|
@@ -675,6 +675,7 @@ load_config (char * file, struct udev *u |
|
conf->processed_main_config = 0; |
|
conf->retrigger_tries = DEFAULT_RETRIGGER_TRIES; |
|
conf->retrigger_delay = DEFAULT_RETRIGGER_DELAY; |
|
+ conf->new_bindings_in_boot = 0; |
|
|
|
/* |
|
* preload default hwtable |
|
@@ -794,6 +795,9 @@ load_config (char * file, struct udev *u |
|
if (conf->ignore_new_boot_devs) |
|
in_initrd(); |
|
|
|
+ if (conf->new_bindings_in_boot == 0 && in_initrd()) |
|
+ conf->bindings_read_only = 1; |
|
+ |
|
return 0; |
|
out: |
|
free_config(conf); |
|
Index: multipath-tools-130222/libmultipath/config.h |
|
=================================================================== |
|
--- multipath-tools-130222.orig/libmultipath/config.h |
|
+++ multipath-tools-130222/libmultipath/config.h |
|
@@ -141,6 +141,7 @@ struct config { |
|
int delay_wait_checks; |
|
int retrigger_tries; |
|
int retrigger_delay; |
|
+ int new_bindings_in_boot; |
|
unsigned int version[3]; |
|
|
|
char * dev; |
|
Index: multipath-tools-130222/libmultipath/dict.c |
|
=================================================================== |
|
--- multipath-tools-130222.orig/libmultipath/dict.c |
|
+++ multipath-tools-130222/libmultipath/dict.c |
|
@@ -871,6 +871,29 @@ def_retrigger_delay_handler(vector strve |
|
return 0; |
|
} |
|
|
|
+static int |
|
+def_new_bindings_in_boot_handler(vector strvec) |
|
+{ |
|
+ char * buff; |
|
+ |
|
+ buff = set_value(strvec); |
|
+ |
|
+ if (!buff) |
|
+ return 1; |
|
+ |
|
+ if ((strlen(buff) == 2 && !strcmp(buff, "no")) || |
|
+ (strlen(buff) == 1 && !strcmp(buff, "0"))) |
|
+ conf->new_bindings_in_boot = 0; |
|
+ else if ((strlen(buff) == 3 && !strcmp(buff, "yes")) || |
|
+ (strlen(buff) == 1 && !strcmp(buff, "1"))) |
|
+ conf->new_bindings_in_boot = 1; |
|
+ else |
|
+ conf->new_bindings_in_boot = 0; |
|
+ |
|
+ FREE(buff); |
|
+ return 0; |
|
+} |
|
+ |
|
/* |
|
* blacklist block handlers |
|
*/ |
|
@@ -3238,6 +3261,15 @@ snprint_def_retrigger_delay (char * buff |
|
} |
|
|
|
static int |
|
+snprint_def_new_bindings_in_boot(char * buff, int len, void * data) |
|
+{ |
|
+ if (conf->new_bindings_in_boot == 1) |
|
+ return snprintf(buff, len, "yes"); |
|
+ else |
|
+ return snprintf(buff, len, "no"); |
|
+} |
|
+ |
|
+static int |
|
snprint_ble_simple (char * buff, int len, void * data) |
|
{ |
|
struct blentry * ble = (struct blentry *)data; |
|
@@ -3313,6 +3345,7 @@ init_keywords(void) |
|
install_keyword("delay_wait_checks", &def_delay_wait_checks_handler, &snprint_def_delay_wait_checks); |
|
install_keyword("retrigger_tries", &def_retrigger_tries_handler, &snprint_def_retrigger_tries); |
|
install_keyword("retrigger_delay", &def_retrigger_delay_handler, &snprint_def_retrigger_delay); |
|
+ install_keyword("new_bindings_in_boot", &def_new_bindings_in_boot_handler, &snprint_def_new_bindings_in_boot); |
|
__deprecated install_keyword("default_selector", &def_selector_handler, NULL); |
|
__deprecated install_keyword("default_path_grouping_policy", &def_pgpolicy_handler, NULL); |
|
__deprecated install_keyword("default_uid_attribute", &def_uid_attribute_handler, NULL);
|
|
|