From bbfe9b12298331b52b0d1de1f1087bc8eac1374a Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski Date: Thu, 2 Feb 2023 14:07:38 -0600 Subject: [PATCH] device-mapper-multipath-0.9.4-2 Update to the head of the upstream staging branch * Patches 0011-0015 are from the upstream staging branch Rename redhat patches * Previous patches 0011-0022 are now patches 0016-0027 --- ...-select_reload_action-in-select_acti.patch | 39 ++++ ...ect-resize-action-even-if-reload-is-.patch | 46 +++++ ...anup-ACT_CREATE-code-in-select_actio.patch | 68 +++++++ ...p-renames-from-stopping-other-multip.patch | 186 ++++++++++++++++++ ...t-fix-resource-leak-in-update_map_pr.patch | 68 +++++++ ... 0016-RH-fixup-udev-rules-for-redhat.patch | 0 ...property-blacklist-exception-builtin.patch | 0 ...RH-don-t-start-without-a-config-file.patch | 0 ...H-Fix-nvme-function-missing-argument.patch | 0 ... 0020-RH-use-rpm-optflags-if-present.patch | 0 ...hconf.patch => 0021-RH-add-mpathconf.patch | 0 ...om-kernel-cmdline-mpath.wwids-with-A.patch | 0 ...-default-find_mutipaths-value-to-off.patch | 0 ...empt-to-get-ANA-info-via-sysfs-first.patch | 0 ...-parse_vpd_pg83-match-scsi_id-output.patch | 0 ...si-device-handlers-to-modules-load.d.patch | 0 ...-RH-compile-with-libreadline-support.patch | 0 device-mapper-multipath.spec | 41 ++-- 18 files changed, 433 insertions(+), 15 deletions(-) create mode 100644 0011-libmultipath-use-select_reload_action-in-select_acti.patch create mode 100644 0012-libmultipath-select-resize-action-even-if-reload-is-.patch create mode 100644 0013-libmultipath-cleanup-ACT_CREATE-code-in-select_actio.patch create mode 100644 0014-libmultipath-keep-renames-from-stopping-other-multip.patch create mode 100644 0015-libmpathpersist-fix-resource-leak-in-update_map_pr.patch rename 0011-RH-fixup-udev-rules-for-redhat.patch => 0016-RH-fixup-udev-rules-for-redhat.patch (100%) rename 0012-RH-Remove-the-property-blacklist-exception-builtin.patch => 0017-RH-Remove-the-property-blacklist-exception-builtin.patch (100%) rename 0013-RH-don-t-start-without-a-config-file.patch => 0018-RH-don-t-start-without-a-config-file.patch (100%) rename 0014-RH-Fix-nvme-function-missing-argument.patch => 0019-RH-Fix-nvme-function-missing-argument.patch (100%) rename 0015-RH-use-rpm-optflags-if-present.patch => 0020-RH-use-rpm-optflags-if-present.patch (100%) rename 0016-RH-add-mpathconf.patch => 0021-RH-add-mpathconf.patch (100%) rename 0017-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch => 0022-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch (100%) rename 0018-RH-reset-default-find_mutipaths-value-to-off.patch => 0023-RH-reset-default-find_mutipaths-value-to-off.patch (100%) rename 0019-RH-attempt-to-get-ANA-info-via-sysfs-first.patch => 0024-RH-attempt-to-get-ANA-info-via-sysfs-first.patch (100%) rename 0020-RH-make-parse_vpd_pg83-match-scsi_id-output.patch => 0025-RH-make-parse_vpd_pg83-match-scsi_id-output.patch (100%) rename 0021-RH-add-scsi-device-handlers-to-modules-load.d.patch => 0026-RH-add-scsi-device-handlers-to-modules-load.d.patch (100%) rename 0022-RH-compile-with-libreadline-support.patch => 0027-RH-compile-with-libreadline-support.patch (100%) diff --git a/0011-libmultipath-use-select_reload_action-in-select_acti.patch b/0011-libmultipath-use-select_reload_action-in-select_acti.patch new file mode 100644 index 0000000..05cc2ce --- /dev/null +++ b/0011-libmultipath-use-select_reload_action-in-select_acti.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 31 Jan 2023 13:34:18 -0600 +Subject: [PATCH] libmultipath: use select_reload_action in select_action + +Since we have a function to set the action to reload, use it. + +Signed-off-by: Benjamin Marzinski +Reviewed-by: Martin Wilck +--- + libmultipath/configure.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index e689f8a7..050b984a 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -729,9 +729,7 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + + if (force_reload) { + mpp->force_udev_reload = 1; +- mpp->action = ACT_RELOAD; +- condlog(3, "%s: set ACT_RELOAD (forced by user)", +- mpp->alias); ++ select_reload_action(mpp, "forced by user"); + return; + } + if (cmpp->size != mpp->size) { +@@ -744,9 +742,7 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + + if (!is_udev_ready(cmpp) && count_active_paths(mpp) > 0) { + mpp->force_udev_reload = 1; +- mpp->action = ACT_RELOAD; +- condlog(3, "%s: set ACT_RELOAD (udev incomplete)", +- mpp->alias); ++ select_reload_action(mpp, "udev incomplete"); + return; + } + diff --git a/0012-libmultipath-select-resize-action-even-if-reload-is-.patch b/0012-libmultipath-select-resize-action-even-if-reload-is-.patch new file mode 100644 index 0000000..39518c4 --- /dev/null +++ b/0012-libmultipath-select-resize-action-even-if-reload-is-.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 31 Jan 2023 13:34:19 -0600 +Subject: [PATCH] libmultipath: select resize action even if reload is forced + +The ACT_RESIZE action is the same as the ACT_RELOAD action, except that +it flushes outstanding IO because the device size is changing and +the new size might be too small for some of the outstanding IO. If we've +detected a size change, and a forced reload is requested, we still need +to flush the IO because the reload will change the device size. + +Signed-off-by: Benjamin Marzinski +Reviewed-by: Martin Wilck +--- + libmultipath/configure.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index 050b984a..6811e661 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -727,11 +727,6 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + return; + } + +- if (force_reload) { +- mpp->force_udev_reload = 1; +- select_reload_action(mpp, "forced by user"); +- return; +- } + if (cmpp->size != mpp->size) { + mpp->force_udev_reload = 1; + mpp->action = ACT_RESIZE; +@@ -740,6 +735,12 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + return; + } + ++ if (force_reload) { ++ mpp->force_udev_reload = 1; ++ select_reload_action(mpp, "forced by user"); ++ return; ++ } ++ + if (!is_udev_ready(cmpp) && count_active_paths(mpp) > 0) { + mpp->force_udev_reload = 1; + select_reload_action(mpp, "udev incomplete"); diff --git a/0013-libmultipath-cleanup-ACT_CREATE-code-in-select_actio.patch b/0013-libmultipath-cleanup-ACT_CREATE-code-in-select_actio.patch new file mode 100644 index 0000000..3574bac --- /dev/null +++ b/0013-libmultipath-cleanup-ACT_CREATE-code-in-select_actio.patch @@ -0,0 +1,68 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 31 Jan 2023 13:34:20 -0600 +Subject: [PATCH] libmultipath: cleanup ACT_CREATE code in select_action + +Combine the two separate blocks that set ACT_CREATE into one. + +Signed-off-by: Benjamin Marzinski +Reviewed-by: Martin Wilck +--- + libmultipath/configure.c | 38 +++++++++++++++++--------------------- + 1 file changed, 17 insertions(+), 21 deletions(-) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index 6811e661..e870e0f6 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -686,33 +686,29 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + if (mpp->need_reload || (cmpp && cmpp->need_reload)) + force_reload = 1; + +- if (!cmpp_by_name) { +- if (cmpp) { +- condlog(2, "%s: rename %s to %s", mpp->wwid, +- cmpp->alias, mpp->alias); +- strlcpy(mpp->alias_old, cmpp->alias, WWID_SIZE); +- mpp->action = ACT_RENAME; +- if (force_reload) { +- mpp->force_udev_reload = 1; +- mpp->action = ACT_FORCERENAME; +- } +- return; ++ if (!cmpp) { ++ if (cmpp_by_name) { ++ condlog(1, "%s: can't use alias \"%s\" used by %s, falling back to WWID", ++ mpp->wwid, mpp->alias, cmpp_by_name->wwid); ++ /* We can do this because wwid wasn't found */ ++ free(mpp->alias); ++ mpp->alias = strdup(mpp->wwid); + } + mpp->action = ACT_CREATE; +- condlog(3, "%s: set ACT_CREATE (map does not exist)", +- mpp->alias); ++ condlog(3, "%s: set ACT_CREATE (map does not exist%s)", ++ mpp->alias, cmpp_by_name ? ", name changed" : ""); + return; + } + +- if (!cmpp) { +- condlog(1, "%s: can't use alias \"%s\" used by %s, falling back to WWID", +- mpp->wwid, mpp->alias, cmpp_by_name->wwid); +- /* We can do this because wwid wasn't found */ +- free(mpp->alias); +- mpp->alias = strdup(mpp->wwid); +- mpp->action = ACT_CREATE; +- condlog(3, "%s: set ACT_CREATE (map does not exist, name changed)", ++ if (!cmpp_by_name) { ++ condlog(2, "%s: rename %s to %s", mpp->wwid, cmpp->alias, + mpp->alias); ++ strlcpy(mpp->alias_old, cmpp->alias, WWID_SIZE); ++ mpp->action = ACT_RENAME; ++ if (force_reload) { ++ mpp->force_udev_reload = 1; ++ mpp->action = ACT_FORCERENAME; ++ } + return; + } + diff --git a/0014-libmultipath-keep-renames-from-stopping-other-multip.patch b/0014-libmultipath-keep-renames-from-stopping-other-multip.patch new file mode 100644 index 0000000..f597e61 --- /dev/null +++ b/0014-libmultipath-keep-renames-from-stopping-other-multip.patch @@ -0,0 +1,186 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Tue, 31 Jan 2023 13:34:21 -0600 +Subject: [PATCH] libmultipath: keep renames from stopping other multipath + actions + +If select_action() is called and a multipath device needs to be renamed, +the code currently checks if force_reload is set, and if so, does the +reload after the rename. But if force_reload isn't set, only the rename +happens, regardless of what other actions are needed. This can happen if +multipathd starts up and a device needs both a reload and a rename. + +Make multipath check for resize, reload, and switch pathgroup along with +rename, and do both if necessary. + +Signed-off-by: Benjamin Marzinski +Reviewed-by: Martin Wilck +--- + libmultipath/configure.c | 62 +++++++++++++++++----------------------- + libmultipath/configure.h | 4 ++- + 2 files changed, 30 insertions(+), 36 deletions(-) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index e870e0f6..4a1c28bb 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -670,7 +670,8 @@ static bool is_udev_ready(struct multipath *cmpp) + static void + select_reload_action(struct multipath *mpp, const char *reason) + { +- mpp->action = ACT_RELOAD; ++ mpp->action = mpp->action == ACT_RENAME ? ACT_RELOAD_RENAME : ++ ACT_RELOAD; + condlog(3, "%s: set ACT_RELOAD (%s)", mpp->alias, reason); + } + +@@ -681,6 +682,7 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + struct multipath * cmpp_by_name; + char * mpp_feat, * cmpp_feat; + ++ mpp->action = ACT_NOTHING; + cmpp = find_mp_by_wwid(curmp, mpp->wwid); + cmpp_by_name = find_mp_by_alias(curmp, mpp->alias); + if (mpp->need_reload || (cmpp && cmpp->need_reload)) +@@ -705,14 +707,8 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + mpp->alias); + strlcpy(mpp->alias_old, cmpp->alias, WWID_SIZE); + mpp->action = ACT_RENAME; +- if (force_reload) { +- mpp->force_udev_reload = 1; +- mpp->action = ACT_FORCERENAME; +- } +- return; +- } +- +- if (cmpp != cmpp_by_name) { ++ /* don't return here. Check for other needed actions */ ++ } else if (cmpp != cmpp_by_name) { + 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); +@@ -720,12 +716,13 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + free(mpp->alias); + mpp->alias = strdup(cmpp->alias); + mpp->action = ACT_IMPOSSIBLE; +- return; ++ /* don't return here. Check for other needed actions */ + } + + if (cmpp->size != mpp->size) { + mpp->force_udev_reload = 1; +- mpp->action = ACT_RESIZE; ++ mpp->action = mpp->action == ACT_RENAME ? ACT_RESIZE_RENAME : ++ ACT_RESIZE; + condlog(3, "%s: set ACT_RESIZE (size change)", + mpp->alias); + return; +@@ -801,14 +798,14 @@ void select_action (struct multipath *mpp, const struct _vector *curmp, + return; + } + if (cmpp->nextpg != mpp->bestpg) { +- mpp->action = ACT_SWITCHPG; ++ mpp->action = mpp->action == ACT_RENAME ? ACT_SWITCHPG_RENAME : ++ ACT_SWITCHPG; + condlog(3, "%s: set ACT_SWITCHPG (next path group change)", + mpp->alias); + return; + } +- mpp->action = ACT_NOTHING; +- condlog(3, "%s: set ACT_NOTHING (map unchanged)", +- mpp->alias); ++ if (mpp->action == ACT_NOTHING) ++ condlog(3, "%s: set ACT_NOTHING (map unchanged)", mpp->alias); + return; + } + +@@ -909,6 +906,17 @@ int domap(struct multipath *mpp, char *params, int is_daemon) + } + } + ++ if (mpp->action == ACT_RENAME || mpp->action == ACT_SWITCHPG_RENAME || ++ mpp->action == ACT_RELOAD_RENAME || ++ mpp->action == ACT_RESIZE_RENAME) { ++ conf = get_multipath_config(); ++ pthread_cleanup_push(put_multipath_config, conf); ++ r = dm_rename(mpp->alias_old, mpp->alias, ++ conf->partition_delim, mpp->skip_kpartx); ++ pthread_cleanup_pop(1); ++ if (r == DOMAP_FAIL) ++ return r; ++ } + switch (mpp->action) { + case ACT_REJECT: + case ACT_NOTHING: +@@ -916,6 +924,7 @@ int domap(struct multipath *mpp, char *params, int is_daemon) + return DOMAP_EXIST; + + case ACT_SWITCHPG: ++ case ACT_SWITCHPG_RENAME: + dm_switchgroup(mpp->alias, mpp->bestpg); + /* + * we may have avoided reinstating paths because there where in +@@ -942,6 +951,7 @@ int domap(struct multipath *mpp, char *params, int is_daemon) + break; + + case ACT_RELOAD: ++ case ACT_RELOAD_RENAME: + sysfs_set_max_sectors_kb(mpp, 1); + if (mpp->ghost_delay_tick > 0 && pathcount(mpp, PATH_UP)) + mpp->ghost_delay_tick = 0; +@@ -949,6 +959,7 @@ int domap(struct multipath *mpp, char *params, int is_daemon) + break; + + case ACT_RESIZE: ++ case ACT_RESIZE_RENAME: + sysfs_set_max_sectors_kb(mpp, 1); + if (mpp->ghost_delay_tick > 0 && pathcount(mpp, PATH_UP)) + mpp->ghost_delay_tick = 0; +@@ -956,29 +967,10 @@ int domap(struct multipath *mpp, char *params, int is_daemon) + break; + + case ACT_RENAME: +- conf = get_multipath_config(); +- pthread_cleanup_push(put_multipath_config, conf); +- r = dm_rename(mpp->alias_old, mpp->alias, +- conf->partition_delim, mpp->skip_kpartx); +- pthread_cleanup_pop(1); +- break; +- +- case ACT_FORCERENAME: +- conf = get_multipath_config(); +- pthread_cleanup_push(put_multipath_config, conf); +- r = dm_rename(mpp->alias_old, mpp->alias, +- conf->partition_delim, mpp->skip_kpartx); +- pthread_cleanup_pop(1); +- if (r) { +- sysfs_set_max_sectors_kb(mpp, 1); +- if (mpp->ghost_delay_tick > 0 && +- pathcount(mpp, PATH_UP)) +- mpp->ghost_delay_tick = 0; +- r = dm_addmap_reload(mpp, params, 0); +- } + break; + + default: ++ r = DOMAP_FAIL; + break; + } + +diff --git a/libmultipath/configure.h b/libmultipath/configure.h +index 2bf73e65..9d935db3 100644 +--- a/libmultipath/configure.h ++++ b/libmultipath/configure.h +@@ -18,9 +18,11 @@ enum actions { + ACT_RENAME, + ACT_CREATE, + ACT_RESIZE, +- ACT_FORCERENAME, ++ ACT_RELOAD_RENAME, + ACT_DRY_RUN, + ACT_IMPOSSIBLE, ++ ACT_RESIZE_RENAME, ++ ACT_SWITCHPG_RENAME, + }; + + /* diff --git a/0015-libmpathpersist-fix-resource-leak-in-update_map_pr.patch b/0015-libmpathpersist-fix-resource-leak-in-update_map_pr.patch new file mode 100644 index 0000000..866080f --- /dev/null +++ b/0015-libmpathpersist-fix-resource-leak-in-update_map_pr.patch @@ -0,0 +1,68 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Thu, 2 Feb 2023 09:20:35 +0100 +Subject: [PATCH] libmpathpersist: fix resource leak in update_map_pr() + +The "no available paths" case would leak the memory resp points to. +Found by coverity. + +Fixes: 50e2c16 ("multipathd: handle no active paths in update_map_pr") + +Signed-off-by: Martin Wilck +Reviewed-by: Benjamin Marzinski +Signed-off-by: Benjamin Marzinski +--- + libmpathpersist/mpath_persist_int.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/libmpathpersist/mpath_persist_int.c b/libmpathpersist/mpath_persist_int.c +index 8b52b746..178c2f54 100644 +--- a/libmpathpersist/mpath_persist_int.c ++++ b/libmpathpersist/mpath_persist_int.c +@@ -733,7 +733,7 @@ int update_map_pr(struct multipath *mpp) + int noisy=0; + struct prin_resp *resp; + unsigned int i; +- int ret, isFound; ++ int ret = MPATH_PR_OTHER, isFound; + + if (!get_be64(mpp->reservation_key)) + { +@@ -754,7 +754,7 @@ int update_map_pr(struct multipath *mpp) + { + condlog(0,"%s: No available paths to check pr status", + mpp->alias); +- return MPATH_PR_OTHER; ++ goto out; + } + mpp->prflag = PRFLAG_UNSET; + ret = mpath_prin_activepath(mpp, MPATH_PRIN_RKEY_SA, resp, noisy); +@@ -762,15 +762,15 @@ int update_map_pr(struct multipath *mpp) + if (ret != MPATH_PR_SUCCESS ) + { + condlog(0,"%s : pr in read keys service action failed Error=%d", mpp->alias, ret); +- free(resp); +- return ret; ++ goto out; + } + ++ ret = MPATH_PR_SUCCESS; ++ + if (resp->prin_descriptor.prin_readkeys.additional_length == 0 ) + { + condlog(3,"%s: No key found. Device may not be registered. ", mpp->alias); +- free(resp); +- return MPATH_PR_SUCCESS; ++ goto out; + } + + condlog(2, "%s: Multipath reservation_key: 0x%" PRIx64 " ", mpp->alias, +@@ -795,6 +795,7 @@ int update_map_pr(struct multipath *mpp) + condlog(2, "%s: prflag flag set.", mpp->alias ); + } + ++out: + free(resp); +- return MPATH_PR_SUCCESS; ++ return ret; + } diff --git a/0011-RH-fixup-udev-rules-for-redhat.patch b/0016-RH-fixup-udev-rules-for-redhat.patch similarity index 100% rename from 0011-RH-fixup-udev-rules-for-redhat.patch rename to 0016-RH-fixup-udev-rules-for-redhat.patch diff --git a/0012-RH-Remove-the-property-blacklist-exception-builtin.patch b/0017-RH-Remove-the-property-blacklist-exception-builtin.patch similarity index 100% rename from 0012-RH-Remove-the-property-blacklist-exception-builtin.patch rename to 0017-RH-Remove-the-property-blacklist-exception-builtin.patch diff --git a/0013-RH-don-t-start-without-a-config-file.patch b/0018-RH-don-t-start-without-a-config-file.patch similarity index 100% rename from 0013-RH-don-t-start-without-a-config-file.patch rename to 0018-RH-don-t-start-without-a-config-file.patch diff --git a/0014-RH-Fix-nvme-function-missing-argument.patch b/0019-RH-Fix-nvme-function-missing-argument.patch similarity index 100% rename from 0014-RH-Fix-nvme-function-missing-argument.patch rename to 0019-RH-Fix-nvme-function-missing-argument.patch diff --git a/0015-RH-use-rpm-optflags-if-present.patch b/0020-RH-use-rpm-optflags-if-present.patch similarity index 100% rename from 0015-RH-use-rpm-optflags-if-present.patch rename to 0020-RH-use-rpm-optflags-if-present.patch diff --git a/0016-RH-add-mpathconf.patch b/0021-RH-add-mpathconf.patch similarity index 100% rename from 0016-RH-add-mpathconf.patch rename to 0021-RH-add-mpathconf.patch diff --git a/0017-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/0022-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch similarity index 100% rename from 0017-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch rename to 0022-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch diff --git a/0018-RH-reset-default-find_mutipaths-value-to-off.patch b/0023-RH-reset-default-find_mutipaths-value-to-off.patch similarity index 100% rename from 0018-RH-reset-default-find_mutipaths-value-to-off.patch rename to 0023-RH-reset-default-find_mutipaths-value-to-off.patch diff --git a/0019-RH-attempt-to-get-ANA-info-via-sysfs-first.patch b/0024-RH-attempt-to-get-ANA-info-via-sysfs-first.patch similarity index 100% rename from 0019-RH-attempt-to-get-ANA-info-via-sysfs-first.patch rename to 0024-RH-attempt-to-get-ANA-info-via-sysfs-first.patch diff --git a/0020-RH-make-parse_vpd_pg83-match-scsi_id-output.patch b/0025-RH-make-parse_vpd_pg83-match-scsi_id-output.patch similarity index 100% rename from 0020-RH-make-parse_vpd_pg83-match-scsi_id-output.patch rename to 0025-RH-make-parse_vpd_pg83-match-scsi_id-output.patch diff --git a/0021-RH-add-scsi-device-handlers-to-modules-load.d.patch b/0026-RH-add-scsi-device-handlers-to-modules-load.d.patch similarity index 100% rename from 0021-RH-add-scsi-device-handlers-to-modules-load.d.patch rename to 0026-RH-add-scsi-device-handlers-to-modules-load.d.patch diff --git a/0022-RH-compile-with-libreadline-support.patch b/0027-RH-compile-with-libreadline-support.patch similarity index 100% rename from 0022-RH-compile-with-libreadline-support.patch rename to 0027-RH-compile-with-libreadline-support.patch diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec index 2933cbd..a6fe03c 100644 --- a/device-mapper-multipath.spec +++ b/device-mapper-multipath.spec @@ -1,6 +1,6 @@ Name: device-mapper-multipath Version: 0.9.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tools to manage multipath devices using device-mapper License: GPLv2 URL: http://christophe.varoqui.free.fr/ @@ -20,18 +20,23 @@ Patch0007: 0007-libmultipath-is_path_valid-check-if-device-is-in-use.patch Patch0008: 0008-libmpathpersist-use-conf-timeout-for-updating-persis.patch Patch0009: 0009-libmultipath-pathinfo-don-t-fail-for-devices-lacking.patch Patch0010: 0010-libmultipath-bump-ABI-version-to-18.0.0.patch -Patch0011: 0011-RH-fixup-udev-rules-for-redhat.patch -Patch0012: 0012-RH-Remove-the-property-blacklist-exception-builtin.patch -Patch0013: 0013-RH-don-t-start-without-a-config-file.patch -Patch0014: 0014-RH-Fix-nvme-function-missing-argument.patch -Patch0015: 0015-RH-use-rpm-optflags-if-present.patch -Patch0016: 0016-RH-add-mpathconf.patch -Patch0017: 0017-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch -Patch0018: 0018-RH-reset-default-find_mutipaths-value-to-off.patch -Patch0019: 0019-RH-attempt-to-get-ANA-info-via-sysfs-first.patch -Patch0020: 0020-RH-make-parse_vpd_pg83-match-scsi_id-output.patch -Patch0021: 0021-RH-add-scsi-device-handlers-to-modules-load.d.patch -Patch0022: 0022-RH-compile-with-libreadline-support.patch +Patch0011: 0011-libmultipath-use-select_reload_action-in-select_acti.patch +Patch0012: 0012-libmultipath-select-resize-action-even-if-reload-is-.patch +Patch0013: 0013-libmultipath-cleanup-ACT_CREATE-code-in-select_actio.patch +Patch0014: 0014-libmultipath-keep-renames-from-stopping-other-multip.patch +Patch0015: 0015-libmpathpersist-fix-resource-leak-in-update_map_pr.patch +Patch0016: 0016-RH-fixup-udev-rules-for-redhat.patch +Patch0017: 0017-RH-Remove-the-property-blacklist-exception-builtin.patch +Patch0018: 0018-RH-don-t-start-without-a-config-file.patch +Patch0019: 0019-RH-Fix-nvme-function-missing-argument.patch +Patch0020: 0020-RH-use-rpm-optflags-if-present.patch +Patch0021: 0021-RH-add-mpathconf.patch +Patch0022: 0022-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch +Patch0023: 0023-RH-reset-default-find_mutipaths-value-to-off.patch +Patch0024: 0024-RH-attempt-to-get-ANA-info-via-sysfs-first.patch +Patch0025: 0025-RH-make-parse_vpd_pg83-match-scsi_id-output.patch +Patch0026: 0026-RH-add-scsi-device-handlers-to-modules-load.d.patch +Patch0027: 0027-RH-compile-with-libreadline-support.patch # runtime Requires: %{name}-libs = %{version}-%{release} @@ -240,12 +245,18 @@ fi %{_pkgconfdir}/libdmmp.pc %changelog +* Thu Feb 2 2023 Benjamin Marzinski - 0.9.4-2 +- Update to the head of the upstream staging branch + * Patches 0011-0015 are from the upstream staging branch +- Rename redhat patches + * Previous patches 0011-0022 are now patches 0016-0027 + * Thu Jan 26 2023 Benjamin Marzinski - 0.9.4-1 - Update to the head of the upstream staging branch - * Previous patches 0001-0032 are intlcude in the source tarball + * Previous patches 0001-0032 are included in the source tarball * Patches 0001-0010 are from the upstream staging branch - Rename redhat patches - * Previous patches 0033-0044 are not patches 0011-0022 + * Previous patches 0033-0044 are now patches 0011-0022 - Add dependency on libmount * Thu Jan 19 2023 Fedora Release Engineering - 0.9.3-2