6738b34a0b
- Modify 0005-RH-add-mpathconf.patch * changed warning message - Modify 0102-RHBZ-1160478-mpathconf-template.patch * updated man page - Modify 0104-RHBZ-631009-deferred-remove.patch * refactor code and minor fix - Refresh 0107-RHBZ-1169935-no-new-devs.patch - Refresh 0112-RHBZ-1194917-add-config_dir-option.patch - Refresh 0126-RHBZ-1211383-alias-collision.patch - Add 0133-RHBZ-1296979-fix-define.patch * look for the correct libudev function to set define - Add 0134-RHBZ-1241528-check-mpath-prefix.patch * only touch devices with a "mpath-" dm uuid prefix - Add 0135-RHBZ-1299600-path-dev-uevents.patch * trigger path uevent the first time a path is claimed by multipath - Add 0136-RHBZ-1304687-wait-for-map-add.patch * wait for the device to finish being added before reloading it. - Add 0137-RHBZ-1280524-clear-chkr-msg.patch - Add 0138-RHBZ-1288660-fix-mpathconf-allow.patch * don't remove existing lines from blacklist_exceptions section - Add 0139-RHBZ-1273173-queue-no-daemon-doc.patch - Add 0140-RHBZ-1299647-fix-help.patch - Add 0141-RHBZ-1303953-mpathpersist-typo.patch - Add 0142-RHBZ-1283750-kpartx-fix.patch * only remove devices if their uuid says that they are the correct partition device - Add 0143-RHBZ-1299648-kpartx-sync.patch * default to using udev sync mode - Add 0144-RHBZ-1299652-alua-pref-arg.patch * allow "exclusive_pref_bit" argument to alua prioritizer - Add 0145-UP-resize-help-msg.patch - Add 0146-UPBZ-1299651-raw-output.patch * allow raw format mutipathd show commands, that remove headers and padding - Add 0147-RHBZ-1272620-fail-rm-msg.patch - Add 0148-RHBZ-1292599-verify-before-remove.patch * verify that all partitions are unused before attempting to remove a device - Add 0149-RHBZ-1292599-restore-removed-parts.patch * don't disable kpartx when restoring the first path of a device. - Add 0150-RHBZ-1253913-fix-startup-msg.patch * wait for multipathd daemon to write pidfile before returning - Add 0151-RHBZ-1297456-weighted-fix.patch * add wwn keyword to weighted prioritizer for persistent naming - Add 0152-RHBZ-1269293-fix-blk-unit-file.patch * use "Wants" instead of "Requires" - Add 0153-RH-fix-i686-size-bug.patch * use 64-bit keycodes for multipathd client commands - Add 0154-UPBZ-1291406-disable-reinstate.patch * don't automatically reinstate ghost paths for implicit alua devices - Add 0155-UPBZ-1300415-PURE-config.patch * Add default config for PURE FlashArray - Add 0156-UPBZ-1313324-dont-fail-discovery.patch * don't fail discovery because individual paths failed. - Add 0157-RHBZ-1319853-multipath-c-error-msg.patch * better error reporting for multipath -c - Add 0158-RHBZ-1318581-timestamp-doc-fix.patch * add documentation for -T - Add 0159-UPBZ-1255885-udev-waits.patch * make multipath and kpartx wait after for udev after each command
114 lines
3.8 KiB
Diff
114 lines
3.8 KiB
Diff
---
|
|
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
|
|
@@ -792,6 +793,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);
|