import UBI device-mapper-multipath-0.9.9-12.el10_1
This commit is contained in:
parent
f8fa8d1c12
commit
07ab21f378
@ -0,0 +1,45 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Date: Wed, 2 Apr 2025 19:13:19 -0400
|
||||
Subject: [PATCH] multipathd: monitor new multipath dev even if we can't update
|
||||
it
|
||||
|
||||
If a multipath device was created by the multipath command, multipathd
|
||||
might not agree with how the device was created. ev_add_map() can reload
|
||||
the device with a different table by calling add_map_without_path() ->
|
||||
update_map(). If this reloading of the map failed, multipathd was simply
|
||||
ignoring the multipath device, even though it still existed.
|
||||
|
||||
One way that reloading can fail is if a path that multipathd already has
|
||||
initialized goes offline. If a multipath device is created by the
|
||||
multipath command while the path is offline, it will not use the offline
|
||||
path, since multipath won't be able to get the necessary pathinfo.
|
||||
However, multipathd will already have the pathinfo for the path, and may
|
||||
not even know that it's offline, since the path is an orphan. When it
|
||||
tries to reload the device, it will include the offline path, and the
|
||||
reload will fail.
|
||||
|
||||
Instead of ignoring the device if it can't reload it, multipathd should
|
||||
just montior it as it is. When the path device is no longer offline, it
|
||||
can be added back to the multipath device by calling
|
||||
"multipathd reconfigure" or "multipathd add path <path>".
|
||||
|
||||
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Reviewed-by: Martin Wilck <mwilck@suse.com>
|
||||
---
|
||||
multipathd/main.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/multipathd/main.c b/multipathd/main.c
|
||||
index 0fa4a404..8ce36a3c 100644
|
||||
--- a/multipathd/main.c
|
||||
+++ b/multipathd/main.c
|
||||
@@ -686,7 +686,7 @@ retry:
|
||||
}
|
||||
|
||||
fail:
|
||||
- if (new_map && (retries < 0 || wait_for_events(mpp, vecs))) {
|
||||
+ if (new_map && wait_for_events(mpp, vecs)) {
|
||||
condlog(0, "%s: failed to create new map", mpp->alias);
|
||||
remove_map(mpp, vecs->pathvec, vecs->mpvec);
|
||||
return 1;
|
||||
@ -0,0 +1,74 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Date: Wed, 2 Apr 2025 19:13:20 -0400
|
||||
Subject: [PATCH] libmultipath: add helper function check_path_wwid_change
|
||||
|
||||
Wrap some code from select_recheck_wwid() in a helper function. A future
|
||||
patch will call this code from a different function.
|
||||
|
||||
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Reviewed-by: Martin Wilck <mwilck@suse.com>
|
||||
---
|
||||
libmultipath/discovery.c | 12 +++++++++++-
|
||||
libmultipath/discovery.h | 2 +-
|
||||
libmultipath/propsel.c | 4 +---
|
||||
3 files changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
|
||||
index 3bcd94ce..a1284e73 100644
|
||||
--- a/libmultipath/discovery.c
|
||||
+++ b/libmultipath/discovery.c
|
||||
@@ -2244,7 +2244,7 @@ static ssize_t uid_fallback(struct path *pp, int path_state,
|
||||
return len;
|
||||
}
|
||||
|
||||
-bool has_uid_fallback(struct path *pp)
|
||||
+static bool has_uid_fallback(const struct path *pp)
|
||||
{
|
||||
/*
|
||||
* Falling back to direct WWID determination is dangerous
|
||||
@@ -2265,6 +2265,16 @@ bool has_uid_fallback(struct path *pp)
|
||||
!strcmp(pp->uid_attribute, ""))));
|
||||
}
|
||||
|
||||
+bool can_recheck_wwid(const struct path *pp)
|
||||
+{
|
||||
+ /*
|
||||
+ * check_path_wwid_change() only works for scsi devices, and it
|
||||
+ * is only guaranteed to give the same WWID if the path uses
|
||||
+ * the default uid_attribute
|
||||
+ */
|
||||
+ return (pp->bus == SYSFS_BUS_SCSI && has_uid_fallback(pp));
|
||||
+}
|
||||
+
|
||||
int
|
||||
get_uid (struct path * pp, int path_state, struct udev_device *udev,
|
||||
int allow_fallback)
|
||||
diff --git a/libmultipath/discovery.h b/libmultipath/discovery.h
|
||||
index acd51792..2298abac 100644
|
||||
--- a/libmultipath/discovery.h
|
||||
+++ b/libmultipath/discovery.h
|
||||
@@ -53,7 +53,7 @@ ssize_t sysfs_get_inquiry(struct udev_device *udev,
|
||||
unsigned char *buff, size_t len);
|
||||
int sysfs_get_asymmetric_access_state(struct path *pp,
|
||||
char *buff, int buflen);
|
||||
-bool has_uid_fallback(struct path *pp);
|
||||
+bool can_recheck_wwid(const struct path *pp);
|
||||
int get_uid(struct path * pp, int path_state, struct udev_device *udev,
|
||||
int allow_fallback);
|
||||
bool is_vpd_page_supported(int fd, int pg);
|
||||
diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
|
||||
index e2dcb316..5ad0b78c 100644
|
||||
--- a/libmultipath/propsel.c
|
||||
+++ b/libmultipath/propsel.c
|
||||
@@ -734,9 +734,7 @@ int select_recheck_wwid(struct config *conf, struct path * pp)
|
||||
pp_set_conf(recheck_wwid);
|
||||
pp_set_default(recheck_wwid, DEFAULT_RECHECK_WWID);
|
||||
out:
|
||||
- if (pp->recheck_wwid == RECHECK_WWID_ON &&
|
||||
- (pp->bus != SYSFS_BUS_SCSI ||
|
||||
- !has_uid_fallback(pp))) {
|
||||
+ if (pp->recheck_wwid == RECHECK_WWID_ON && !can_recheck_wwid(pp)) {
|
||||
pp->recheck_wwid = RECHECK_WWID_OFF;
|
||||
origin = "(setting: unsupported by device type/config)";
|
||||
}
|
||||
202
0032-multipathd-re-add-paths-skipped-because-they-were-of.patch
Normal file
202
0032-multipathd-re-add-paths-skipped-because-they-were-of.patch
Normal file
@ -0,0 +1,202 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Date: Wed, 2 Apr 2025 19:13:21 -0400
|
||||
Subject: [PATCH] multipathd: re-add paths skipped because they were offline
|
||||
|
||||
When a new device is added by the multipath command, multipathd may know
|
||||
of other paths that cannot be added to the device because they are
|
||||
currently offline. Instead of ignoring these paths, multipathd will now
|
||||
re-add them when they come back online. To do this, it multipathd needs
|
||||
a new path variable add_when_online, to track devices that could not be
|
||||
added to an existing multipath device because they were offline. These
|
||||
paths are handled along with the other uninitialized paths.
|
||||
|
||||
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Reviewed-by: Martin Wilck <mwilck@suse.com>
|
||||
---
|
||||
libmultipath/libmultipath.version | 5 +++
|
||||
libmultipath/print.c | 5 ++-
|
||||
libmultipath/structs.h | 1 +
|
||||
libmultipath/structs_vec.c | 5 +++
|
||||
multipathd/main.c | 53 ++++++++++++++++++++++++++++++-
|
||||
multipathd/multipathd.8.in | 5 +--
|
||||
6 files changed, 70 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libmultipath/libmultipath.version b/libmultipath/libmultipath.version
|
||||
index eb511749..0b7a1a2b 100644
|
||||
--- a/libmultipath/libmultipath.version
|
||||
+++ b/libmultipath/libmultipath.version
|
||||
@@ -241,3 +241,8 @@ global:
|
||||
local:
|
||||
*;
|
||||
};
|
||||
+
|
||||
+LIBMULTIPATH_24.0.1 {
|
||||
+global:
|
||||
+ can_recheck_wwid;
|
||||
+} LIBMULTIPATH_24.0.0;
|
||||
diff --git a/libmultipath/print.c b/libmultipath/print.c
|
||||
index d592001d..fbed2dd5 100644
|
||||
--- a/libmultipath/print.c
|
||||
+++ b/libmultipath/print.c
|
||||
@@ -664,8 +664,11 @@ snprint_path_serial (struct strbuf *buff, const struct path * pp)
|
||||
static int
|
||||
snprint_path_mpp (struct strbuf *buff, const struct path * pp)
|
||||
{
|
||||
- if (!pp->mpp)
|
||||
+ if (!pp->mpp) {
|
||||
+ if (pp->add_when_online)
|
||||
+ return append_strbuf_str(buff, "[offline]");
|
||||
return append_strbuf_str(buff, "[orphan]");
|
||||
+ }
|
||||
if (!pp->mpp->alias)
|
||||
return append_strbuf_str(buff, "[unknown]");
|
||||
return snprint_str(buff, pp->mpp->alias);
|
||||
diff --git a/libmultipath/structs.h b/libmultipath/structs.h
|
||||
index dbaf4d43..5dc00fbc 100644
|
||||
--- a/libmultipath/structs.h
|
||||
+++ b/libmultipath/structs.h
|
||||
@@ -396,6 +396,7 @@ struct path {
|
||||
int eh_deadline;
|
||||
bool is_checked;
|
||||
bool can_use_env_uid;
|
||||
+ bool add_when_online;
|
||||
unsigned int checker_timeout;
|
||||
/* configlet pointers */
|
||||
vector hwe;
|
||||
diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c
|
||||
index ccc4efc7..23e135ce 100644
|
||||
--- a/libmultipath/structs_vec.c
|
||||
+++ b/libmultipath/structs_vec.c
|
||||
@@ -374,6 +374,9 @@ static void orphan_paths(vector pathvec, struct multipath *mpp, const char *reas
|
||||
free_path(pp);
|
||||
} else
|
||||
orphan_path(pp, reason);
|
||||
+ } else if (pp->add_when_online &&
|
||||
+ strncmp(mpp->wwid, pp->wwid, WWID_SIZE) == 0) {
|
||||
+ pp->add_when_online = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -560,6 +563,8 @@ void sync_paths(struct multipath *mpp, vector pathvec)
|
||||
found = 0;
|
||||
vector_foreach_slot(mpp->pg, pgp, j) {
|
||||
if (find_slot(pgp->paths, (void *)pp) != -1) {
|
||||
+ if (pp->add_when_online)
|
||||
+ pp->add_when_online = false;
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
diff --git a/multipathd/main.c b/multipathd/main.c
|
||||
index 8ce36a3c..a565ade5 100644
|
||||
--- a/multipathd/main.c
|
||||
+++ b/multipathd/main.c
|
||||
@@ -651,11 +651,44 @@ pr_register_active_paths(struct multipath *mpp)
|
||||
}
|
||||
}
|
||||
|
||||
+static void
|
||||
+save_offline_paths(const struct multipath *mpp, vector offline_paths)
|
||||
+{
|
||||
+ unsigned int i, j;
|
||||
+ struct path *pp;
|
||||
+ struct pathgroup *pgp;
|
||||
+
|
||||
+ vector_foreach_slot (mpp->pg, pgp, i)
|
||||
+ vector_foreach_slot (pgp->paths, pp, j)
|
||||
+ if (pp->initialized == INIT_OK && pp->offline)
|
||||
+ /* ignore failures storing the paths. */
|
||||
+ store_path(offline_paths, pp);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+handle_orphaned_offline_paths(vector offline_paths)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ struct path *pp;
|
||||
+
|
||||
+ vector_foreach_slot (offline_paths, pp, i)
|
||||
+ if (pp->mpp == NULL)
|
||||
+ pp->add_when_online = true;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+cleanup_reset_vec(struct _vector **v)
|
||||
+{
|
||||
+ vector_reset(*v);
|
||||
+}
|
||||
+
|
||||
static int
|
||||
update_map (struct multipath *mpp, struct vectors *vecs, int new_map)
|
||||
{
|
||||
int retries = 3;
|
||||
char *params __attribute__((cleanup(cleanup_charp))) = NULL;
|
||||
+ struct _vector offline_paths_vec = { .allocated = 0 };
|
||||
+ vector offline_paths __attribute__((cleanup(cleanup_reset_vec))) = &offline_paths_vec;
|
||||
|
||||
retry:
|
||||
condlog(4, "%s: updating new map", mpp->alias);
|
||||
@@ -692,6 +725,9 @@ fail:
|
||||
return 1;
|
||||
}
|
||||
|
||||
+ if (new_map && retries < 0)
|
||||
+ save_offline_paths(mpp, offline_paths);
|
||||
+
|
||||
if (setup_multipath(vecs, mpp))
|
||||
return 1;
|
||||
|
||||
@@ -702,6 +738,9 @@ fail:
|
||||
if (mpp->prflag == PRFLAG_SET)
|
||||
pr_register_active_paths(mpp);
|
||||
|
||||
+ if (VECTOR_SIZE(offline_paths) != 0)
|
||||
+ handle_orphaned_offline_paths(offline_paths);
|
||||
+
|
||||
if (retries < 0)
|
||||
condlog(0, "%s: failed reload in new map update", mpp->alias);
|
||||
return 0;
|
||||
@@ -2360,7 +2399,8 @@ check_path (struct vectors * vecs, struct path * pp, unsigned int ticks)
|
||||
bool need_reload;
|
||||
|
||||
if (((pp->initialized == INIT_OK || pp->initialized == INIT_PARTIAL ||
|
||||
- pp->initialized == INIT_REQUESTED_UDEV) && !pp->mpp) ||
|
||||
+ pp->initialized == INIT_REQUESTED_UDEV) && !pp->mpp &&
|
||||
+ !pp->add_when_online) ||
|
||||
pp->initialized == INIT_REMOVED)
|
||||
return 0;
|
||||
|
||||
@@ -2481,6 +2521,17 @@ check_path (struct vectors * vecs, struct path * pp, unsigned int ticks)
|
||||
*/
|
||||
pp->checkint = max_checkint;
|
||||
}
|
||||
+ } else if (pp->initialized == INIT_OK && pp->add_when_online &&
|
||||
+ (newstate == PATH_UP || newstate == PATH_GHOST)) {
|
||||
+ pp->add_when_online = false;
|
||||
+ if (can_recheck_wwid(pp) &&
|
||||
+ check_path_wwid_change(pp)) {
|
||||
+ condlog(0, "%s: path wwid change detected. Removing", pp->dev);
|
||||
+ handle_path_wwid_change(pp, vecs);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ ev_add_path(pp, vecs, 1);
|
||||
+ pp->tick = 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
diff --git a/multipathd/multipathd.8.in b/multipathd/multipathd.8.in
|
||||
index 5b1aeb42..342e363e 100644
|
||||
--- a/multipathd/multipathd.8.in
|
||||
+++ b/multipathd/multipathd.8.in
|
||||
@@ -597,8 +597,9 @@ The device serial number.
|
||||
The device marginal state, either \fImarginal\fR or \fInormal\fR.
|
||||
.TP
|
||||
.B %m
|
||||
-The multipath device that this device is a path of, or \fI[orphan]\fR if
|
||||
-it is not part of any multipath device.
|
||||
+The multipath device that this device is a path of, or \fI[offline]\fR
|
||||
+if this device could not be added to a device because it is offline or
|
||||
+\fI[orphan]\fR if it is not part of any multipath device.
|
||||
.TP
|
||||
.B %N
|
||||
The host World Wide Node Name (WWNN) of the device, if any.
|
||||
@ -0,0 +1,37 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Xose Vazquez Perez <xose.vazquez@gmail.com>
|
||||
Date: Thu, 5 Dec 2024 23:49:16 +0100
|
||||
Subject: [PATCH] multipath-tools: add HPE MSA Gen7 (2070/2072) to hwtable
|
||||
|
||||
https://support.hpe.com/connect/s/product?kmpmoid=1014856412
|
||||
|
||||
Just guessing, confirmation from manufacturer is needed.
|
||||
|
||||
Cc: Jon Paul <Jon.Paul@hpe.com>
|
||||
Cc: Martin Wilck <mwilck@suse.com>
|
||||
Cc: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
|
||||
Cc: DM-DEVEL ML <dm-devel@lists.linux.dev>
|
||||
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
|
||||
Acked-by: Jon Paul <jon.paul@hpe.com>
|
||||
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
---
|
||||
libmultipath/hwtable.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
|
||||
index 9e008df6..17ba5b45 100644
|
||||
--- a/libmultipath/hwtable.c
|
||||
+++ b/libmultipath/hwtable.c
|
||||
@@ -190,9 +190,9 @@ static struct hwentry default_hw[] = {
|
||||
.prio_name = PRIO_ALUA,
|
||||
},
|
||||
{
|
||||
- /* MSA 1040, 1050, 1060, 2040, 2050 and 2060 families */
|
||||
+ /* MSA 1040, 1050, 1060, 2040, 2050, 2060 and 2070 families */
|
||||
.vendor = "(HP|HPE)",
|
||||
- .product = "MSA [12]0[456]0 (SAN|SAS|FC|iSCSI)",
|
||||
+ .product = "MSA [12]0[4567]0 (SAN|SAS|FC|iSCSI)",
|
||||
.pgpolicy = GROUP_BY_PRIO,
|
||||
.pgfailback = -FAILBACK_IMMEDIATE,
|
||||
.no_path_retry = 18,
|
||||
84
0034-libmultipath-fix-crash-in-print_foreign_topology.patch
Normal file
84
0034-libmultipath-fix-crash-in-print_foreign_topology.patch
Normal file
@ -0,0 +1,84 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||
Date: Wed, 20 Aug 2025 18:25:03 -0400
|
||||
Subject: [PATCH] libmultipath: fix crash in print_foreign_topology
|
||||
|
||||
print_foreign_topology() called get_paths() to get a vector of
|
||||
(struct gen_path *) items and then called get_multipath_layout__(),
|
||||
which expects a vector of (struct gen_multipath *) items, with the path
|
||||
vector. This can easily end badly. Fix it to correctly call
|
||||
get_path_layout__(), and rename width to p_width in the functions that
|
||||
end up calling snprint_multipath_topology__(), which is expecting to get
|
||||
passed the path field widths.
|
||||
|
||||
Signed-off-by: Lin Li <lilin@redhat.com>
|
||||
---
|
||||
libmultipath/foreign.c | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/libmultipath/foreign.c b/libmultipath/foreign.c
|
||||
index d01a5ef0..b91e3898 100644
|
||||
--- a/libmultipath/foreign.c
|
||||
+++ b/libmultipath/foreign.c
|
||||
@@ -500,7 +500,7 @@ void foreign_multipath_layout(fieldwidth_t *width)
|
||||
}
|
||||
|
||||
static int __snprint_foreign_topology(struct strbuf *buf, int verbosity,
|
||||
- const fieldwidth_t *width)
|
||||
+ const fieldwidth_t *p_width)
|
||||
{
|
||||
struct foreign *fgn;
|
||||
int i;
|
||||
@@ -518,7 +518,7 @@ static int __snprint_foreign_topology(struct strbuf *buf, int verbosity,
|
||||
if (vec != NULL) {
|
||||
vector_foreach_slot(vec, gm, j) {
|
||||
if (_snprint_multipath_topology(
|
||||
- gm, buf, verbosity, width) < 0)
|
||||
+ gm, buf, verbosity, p_width) < 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -530,7 +530,7 @@ static int __snprint_foreign_topology(struct strbuf *buf, int verbosity,
|
||||
}
|
||||
|
||||
int snprint_foreign_topology(struct strbuf *buf, int verbosity,
|
||||
- const fieldwidth_t *width)
|
||||
+ const fieldwidth_t *p_width)
|
||||
{
|
||||
int rc;
|
||||
|
||||
@@ -540,7 +540,7 @@ int snprint_foreign_topology(struct strbuf *buf, int verbosity,
|
||||
return 0;
|
||||
}
|
||||
pthread_cleanup_push(unlock_foreigns, NULL);
|
||||
- rc = __snprint_foreign_topology(buf, verbosity, width);
|
||||
+ rc = __snprint_foreign_topology(buf, verbosity, p_width);
|
||||
pthread_cleanup_pop(1);
|
||||
return rc;
|
||||
}
|
||||
@@ -550,9 +550,9 @@ void print_foreign_topology(int verbosity)
|
||||
STRBUF_ON_STACK(buf);
|
||||
struct foreign *fgn;
|
||||
int i;
|
||||
- fieldwidth_t *width __attribute__((cleanup(cleanup_ucharp))) = NULL;
|
||||
+ fieldwidth_t *p_width __attribute__((cleanup(cleanup_ucharp))) = NULL;
|
||||
|
||||
- if ((width = alloc_path_layout()) == NULL)
|
||||
+ if ((p_width = alloc_path_layout()) == NULL)
|
||||
return;
|
||||
rdlock_foreigns();
|
||||
if (foreigns == NULL) {
|
||||
@@ -566,11 +566,11 @@ void print_foreign_topology(int verbosity)
|
||||
fgn->lock(fgn->context);
|
||||
pthread_cleanup_push(fgn->unlock, fgn->context);
|
||||
vec = fgn->get_paths(fgn->context);
|
||||
- _get_multipath_layout(vec, LAYOUT_RESET_NOT, width);
|
||||
+ _get_path_layout(vec, LAYOUT_RESET_NOT, p_width);
|
||||
fgn->release_paths(fgn->context, vec);
|
||||
pthread_cleanup_pop(1);
|
||||
}
|
||||
- __snprint_foreign_topology(&buf, verbosity, width);
|
||||
+ __snprint_foreign_topology(&buf, verbosity, p_width);
|
||||
pthread_cleanup_pop(1);
|
||||
printf("%s", get_strbuf_str(&buf));
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
Name: device-mapper-multipath
|
||||
Version: 0.9.9
|
||||
Release: 6%{?dist}.2
|
||||
Release: 12%{?dist}
|
||||
Summary: Tools to manage multipath devices using device-mapper
|
||||
License: GPLv2
|
||||
URL: http://christophe.varoqui.free.fr/
|
||||
@ -39,6 +39,11 @@ Patch0026: 0026-libmpathcmd-honor-MULTIPATH_SOCKET_NAME-environment-.patch
|
||||
Patch0027: 0027-multipathd-honor-MULTIPATH_SOCKET_NAME-environment-v.patch
|
||||
Patch0028: 0028-multipath-clean-up-find_multipaths-documentation.patch
|
||||
Patch0029: 0029-multipathd-Add-multipathd-man-page-section-about-soc.patch
|
||||
Patch0030: 0030-multipathd-monitor-new-multipath-dev-even-if-we-can-.patch
|
||||
Patch0031: 0031-libmultipath-add-helper-function-check_path_wwid_cha.patch
|
||||
Patch0032: 0032-multipathd-re-add-paths-skipped-because-they-were-of.patch
|
||||
Patch0033: 0033-multipath-tools-add-HPE-MSA-Gen7-2070-2072-to-hwtabl.patch
|
||||
Patch0034: 0034-libmultipath-fix-crash-in-print_foreign_topology.patch
|
||||
|
||||
# runtime
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
@ -248,11 +253,35 @@ fi
|
||||
%{_pkgconfdir}/libdmmp.pc
|
||||
|
||||
%changelog
|
||||
* Wed Nar 12 2025 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-6.2
|
||||
- Fix multipath_conf_syntax OSCI test.
|
||||
- Related: RHEL-82194
|
||||
* Sat Sep 13 2025 Lin Li <lilin@redhat.com> - 0.9.9-12
|
||||
Add 0034-libmultipath-fix-crash-in-print_foreign_topology.patch
|
||||
* Fixes RHEL-107436 ("Running multipath -ll on system with "enable_foreign
|
||||
nvme" results in segfault")
|
||||
Resolves: RHEL-107436
|
||||
|
||||
* Thu Mar 6 2025 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-6.1
|
||||
* Mon Jul 14 2025 Filip Suba <fsuba@redhat.com> - 0.9.9-11
|
||||
- Add 0033-multipath-tools-add-HPE-MSA-Gen7-2070-2072-to-hwtabl.patch
|
||||
* Fixes RHEL-103112 ("Update multipath builtin config to add new
|
||||
device defaults [rhel-10]")
|
||||
- Resolves: RHEL-103112
|
||||
|
||||
* Fri Apr 18 2025 Filip Suba <fsuba@redhat.com> - 0.9.9-10
|
||||
- Migrate gating tests from STI to tmt
|
||||
- Related: RHEL-82535
|
||||
|
||||
* Wed Apr 16 2025 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-9
|
||||
- Add 0030-multipathd-monitor-new-multipath-dev-even-if-we-can-.patch
|
||||
- Add 0031-libmultipath-add-helper-function-check_path_wwid_cha.patch
|
||||
- Add 0032-multipathd-re-add-paths-skipped-because-they-were-of.patch
|
||||
* Fixes RHEL-82535 ("multipathd does not monitor multipath devices
|
||||
created externally while there are offline paths.")
|
||||
- Resolves: RHEL-82535
|
||||
|
||||
* Wed Mar 12 2025 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-8
|
||||
- Fix multipath_conf_syntax OSCI test.
|
||||
- Related: RHEL-82180
|
||||
|
||||
* Thu Mar 6 2025 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-7
|
||||
- Add 0018-multipath-tools-move-DEFAULT_SOCKET-definition-into-.patch
|
||||
- Add 0019-multipath-tools-add-helper-mpath_fill_sockaddr__.patch
|
||||
- Add 0020-libmpathutil-add-support-for-Unix-pathname-sockets.patch
|
||||
@ -265,9 +294,9 @@ fi
|
||||
- Add 0027-multipathd-honor-MULTIPATH_SOCKET_NAME-environment-v.patch
|
||||
- Add 0028-multipath-clean-up-find_multipaths-documentation.patch
|
||||
- Add 0029-multipathd-Add-multipathd-man-page-section-about-soc.patch
|
||||
* Fixes RHEL-82194 ("RFE: Enable multipathd to communicate with a
|
||||
* Fixes RHEL-82180 ("RFE: Enable multipathd to communicate with a
|
||||
process in another network namespace")
|
||||
- Resolves: RHEL-82194
|
||||
- Resolves: RHEL-82180
|
||||
|
||||
* Thu Jan 9 2025 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-6
|
||||
- Add 0017-libmultipath-foreign-fix-memory-leak-in-nvme-foreign.patch
|
||||
|
||||
Loading…
Reference in New Issue
Block a user