72c1204567
Now mdcheck service can't be run successfully. We need to put mdcheck in to the right place (/usr/share/mdadm/mdcheck) and it needs to remove the dependency of mdadm_env.sh which is fixed in patch 76c224c6c. And there is a history problem. It needed KillMode=none before, so it removed the upstream patch 52c67fcdd. Now this problem has been fixed, so we can do the backport more easilly now. We don't need to remove the upstream patch here again. It adds a rhel only feature too for transient failure. Resolves: rhbz#2159923, rhbz#2150865, rhbz#2124071, rhbz#2203859 Signed-off-by: Xiao Ni <xni@redhat.com>
65 lines
2.2 KiB
Diff
65 lines
2.2 KiB
Diff
From fb2c0f6183e29b014608e5e1aa4d53cb55887326 Mon Sep 17 00:00:00 2001
|
|
From: Logan Gunthorpe <logang@deltatee.com>
|
|
Date: Wed, 1 Mar 2023 13:41:30 -0700
|
|
Subject: [PATCH 100/125] Create: remove safe_mode_delay local variable
|
|
|
|
All .getinfo_super() call sets the info.safe_mode_delay variables
|
|
to a constant value, so no matter what the current state is
|
|
that function will always set it to the same value.
|
|
|
|
Create() calls .getinfo_super() multiple times while creating the array.
|
|
The value is stored in a local variable for every disk in the loop
|
|
to add disks (so the last disc call takes precedence). The local
|
|
variable is then used in the call to sysfs_set_safemode().
|
|
|
|
This can be simplified by using info.safe_mode_delay directly. The info
|
|
variable had .getinfo_super() called on it early in the function so, by the
|
|
reasoning above, it will have the same value as the local variable which
|
|
can thus be removed.
|
|
|
|
Doing this allows for factoring out code from Create() in a subsequent
|
|
patch.
|
|
|
|
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
|
Acked-by: Kinga Tanska <kinga.tanska@linux.intel.com>
|
|
Reviewed-by: Xiao Ni <xni@redhat.com>
|
|
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
|
|
Acked-by: Coly Li <colyli@suse.de>
|
|
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
|
---
|
|
Create.c | 4 +---
|
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
|
diff --git a/Create.c b/Create.c
|
|
index 2e8203ec..8ded81dc 100644
|
|
--- a/Create.c
|
|
+++ b/Create.c
|
|
@@ -137,7 +137,6 @@ int Create(struct supertype *st, char *mddev,
|
|
int did_default = 0;
|
|
int do_default_layout = 0;
|
|
int do_default_chunk = 0;
|
|
- unsigned long safe_mode_delay = 0;
|
|
char chosen_name[1024];
|
|
struct map_ent *map = NULL;
|
|
unsigned long long newsize;
|
|
@@ -952,7 +951,6 @@ int Create(struct supertype *st, char *mddev,
|
|
goto abort_locked;
|
|
}
|
|
st->ss->getinfo_super(st, inf, NULL);
|
|
- safe_mode_delay = inf->safe_mode_delay;
|
|
|
|
if (have_container && c->verbose > 0)
|
|
pr_err("Using %s for device %d\n",
|
|
@@ -1065,7 +1063,7 @@ int Create(struct supertype *st, char *mddev,
|
|
"readonly");
|
|
break;
|
|
}
|
|
- sysfs_set_safemode(&info, safe_mode_delay);
|
|
+ sysfs_set_safemode(&info, info.safe_mode_delay);
|
|
if (err) {
|
|
pr_err("failed to activate array.\n");
|
|
ioctl(mdfd, STOP_ARRAY, NULL);
|
|
--
|
|
2.38.1
|
|
|