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>
74 lines
2.4 KiB
Diff
74 lines
2.4 KiB
Diff
From 0f8347d4f6588ee6ded55af3e307418cee286a6f Mon Sep 17 00:00:00 2001
|
|
From: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
|
Date: Thu, 23 Mar 2023 17:50:15 +0100
|
|
Subject: [PATCH 122/125] mdadm: define DEV_NUM_PREF
|
|
|
|
Use define instead of inlines. Add _LEN define.
|
|
|
|
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
|
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
|
---
|
|
config.c | 4 ++--
|
|
mdadm.h | 8 ++++++++
|
|
mdopen.c | 10 +++++-----
|
|
3 files changed, 15 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/config.c b/config.c
|
|
index 59d5bfb6..f44cc1d3 100644
|
|
--- a/config.c
|
|
+++ b/config.c
|
|
@@ -407,8 +407,8 @@ void arrayline(char *line)
|
|
if (strcasecmp(w, "<ignore>") == 0 ||
|
|
strncmp(w, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0 ||
|
|
(w[0] != '/' && w[0] != '<') ||
|
|
- (strncmp(w, "/dev/md", 7) == 0 &&
|
|
- is_number(w + 7)) ||
|
|
+ (strncmp(w, DEV_NUM_PREF, DEV_NUM_PREF_LEN) == 0 &&
|
|
+ is_number(w + DEV_NUM_PREF_LEN)) ||
|
|
(strncmp(w, "/dev/md_d", 9) == 0 &&
|
|
is_number(w + 9))) {
|
|
/* This is acceptable */;
|
|
diff --git a/mdadm.h b/mdadm.h
|
|
index 67d73f96..f2e70baa 100644
|
|
--- a/mdadm.h
|
|
+++ b/mdadm.h
|
|
@@ -100,6 +100,14 @@ struct dlm_lksb {
|
|
#define DEFAULT_BITMAP_DELAY 5
|
|
#define DEFAULT_MAX_WRITE_BEHIND 256
|
|
|
|
+/* DEV_NUM_PREF is a subpath to numbered MD devices, e.g. /dev/md1 or directory name.
|
|
+ * DEV_NUM_PREF_LEN is a length with Null byte excluded.
|
|
+ */
|
|
+#ifndef DEV_NUM_PREF
|
|
+#define DEV_NUM_PREF "/dev/md"
|
|
+#define DEV_NUM_PREF_LEN (sizeof(DEV_NUM_PREF) - 1)
|
|
+#endif /* DEV_NUM_PREF */
|
|
+
|
|
/* DEV_MD_DIR points to named MD devices directory.
|
|
* DEV_MD_DIR_LEN is a length with Null byte excluded.
|
|
*/
|
|
diff --git a/mdopen.c b/mdopen.c
|
|
index 6c3bdb6a..d3022a54 100644
|
|
--- a/mdopen.c
|
|
+++ b/mdopen.c
|
|
@@ -412,11 +412,11 @@ int create_mddev(char *dev, char *name, int autof, int trustworthy,
|
|
make_parts(devname, parts);
|
|
|
|
if (strcmp(chosen, devname) != 0) {
|
|
- if (mkdir("/dev/md",0700) == 0) {
|
|
- if (chown("/dev/md", ci->uid, ci->gid))
|
|
- perror("chown /dev/md");
|
|
- if (chmod("/dev/md", ci->mode| ((ci->mode>>2) & 0111)))
|
|
- perror("chmod /dev/md");
|
|
+ if (mkdir(DEV_NUM_PREF, 0700) == 0) {
|
|
+ if (chown(DEV_NUM_PREF, ci->uid, ci->gid))
|
|
+ perror("chown " DEV_NUM_PREF);
|
|
+ if (chmod(DEV_NUM_PREF, ci->mode | ((ci->mode >> 2) & 0111)))
|
|
+ perror("chmod " DEV_NUM_PREF);
|
|
}
|
|
|
|
if (dev && strcmp(chosen, dev) == 0)
|
|
--
|
|
2.38.1
|
|
|