You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.4 KiB
74 lines
2.4 KiB
11 months ago
|
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
|
||
|
|