cdf21d08ef
After updating to latest upstream, bug2163711 can be fixed. We don't use rhel only udev rule anymore and we use the udev rules from upstream. So we don't need to modify our rhel only udev rule again. Resolves: bz#2163711 Signed-off-by: Xiao Ni <xni@redhat.com>
59 lines
1.9 KiB
Diff
59 lines
1.9 KiB
Diff
From 8b668d4aa3305af5963162b7499b128bd71f8f29 Mon Sep 17 00:00:00 2001
|
|
From: Lukasz Florczak <lukasz.florczak@linux.intel.com>
|
|
Date: Thu, 22 Sep 2022 08:29:50 +0200
|
|
Subject: [PATCH 61/83] Mdmonitor: Omit non-md devices
|
|
|
|
Fix segfault commit [1] introduced check whether given device is
|
|
mddevice, but it happend to terminate Mdmonitor if at least one of given
|
|
devices didn't fulfill that condition. In result Mdmonitor service was
|
|
no longer started on boot (with --scan option) when config contained some
|
|
non-existent array entry.
|
|
|
|
This commit introduces ommiting non-md devices so scan option can still
|
|
be used when config is wrong and allow Mdmonitor service to run on boot.
|
|
|
|
Giving a list of devices to monitor containing non-existing or
|
|
non-md devices will result in monitoring only confirmed mddevices.
|
|
|
|
[1] https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=e702f392959d1c2ad2089e595b52235ed97b4e18
|
|
|
|
Signed-off-by: Lukasz Florczak <lukasz.florczak@linux.intel.com>
|
|
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
|
|
---
|
|
Monitor.c | 12 ++++--------
|
|
1 file changed, 4 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/Monitor.c b/Monitor.c
|
|
index b4e954c6..7d7dc4d2 100644
|
|
--- a/Monitor.c
|
|
+++ b/Monitor.c
|
|
@@ -185,10 +185,8 @@ int Monitor(struct mddev_dev *devlist,
|
|
continue;
|
|
if (strcasecmp(mdlist->devname, "<ignore>") == 0)
|
|
continue;
|
|
- if (!is_mddev(mdlist->devname)) {
|
|
- free_statelist(statelist);
|
|
- return 1;
|
|
- }
|
|
+ if (!is_mddev(mdlist->devname))
|
|
+ continue;
|
|
|
|
st = xcalloc(1, sizeof *st);
|
|
snprintf(st->devname, MD_NAME_MAX + sizeof("/dev/md/"),
|
|
@@ -208,10 +206,8 @@ int Monitor(struct mddev_dev *devlist,
|
|
for (dv = devlist; dv; dv = dv->next) {
|
|
struct state *st;
|
|
|
|
- if (!is_mddev(dv->devname)) {
|
|
- free_statelist(statelist);
|
|
- return 1;
|
|
- }
|
|
+ if (!is_mddev(dv->devname))
|
|
+ continue;
|
|
|
|
st = xcalloc(1, sizeof *st);
|
|
mdlist = conf_get_ident(dv->devname);
|
|
--
|
|
2.38.1
|
|
|