device-mapper-multipath/0126-RHBZ-1211383-alias-collision.patch
Benjamin Marzinski 8c4232d3f9 device-mapper-multipath-0.4.9-77
Modify 0104-RHBZ-631009-deferred-remove.patch
  * add man page info
Refresh 0112-RHBZ-1194917-add-config_dir-option.patch
Refresh 0114-RHBZ-1196394-delayed-reintegration.patch
Add 0118-UPBZ-1200738-update-eternus-config.patch
  * update default config
Add 0119-RHBZ-1081397-save-alua-info.patch
  * make prioritizers save information between calls to speed them up.
Add 0120-RHBZ-1043093-realloc-fix.patch
  * free old memory if realloc fails.
Add 0121-RHBZ-1197234-rules-fix.patch
  * make sure kpartx runs after an DM_ACTIVATION event occurs.
Add 0122-RHBZ-1212590-dont-use-var.patch
  * use /run instead of /var/run
Add 0123-UPBZ-1166072-fix-path-offline.patch
  * Don't mark quiesce and transport-offline paths as offline
Add 0124-RHBZ-1209275-retrigger-uevents.patch
  * Make multipathd retrigger uevents when paths haven't successfully had
    their udev_attribute environment variable set by udev and add
    "retrigger_ties" and "retrigger_delay" to control this
Add 0125-RHBZ-1153832-kpartx-delete.patch
  * Delete all partition devices with -d (not just the ones in the partition
    table)
Add 0126-RHBZ-1211383-alias-collision.patch
  * make multipathd use the old alias, if rename failed and add
    "new_bindings_in_boot" to determine if new bindings can be added to
    the bindings file in the initramfs
Add 0127-RHBZ-1201030-use-blk-availability.patch
  * Make multipath use blk-availability.service
Add 0128-RHBZ-1222123-mpathconf-allow.patch
  * Add mpathconf --allow for creating specialized config files.
Add 0129-RHBZ-1241774-sun-partition-numbering.patch
  * Make kpartx correctly number sun partitions.
2015-08-13 13:57:05 -05:00

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
@@ -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);