44 lines
1.3 KiB
Diff
44 lines
1.3 KiB
Diff
|
From bb6f40bf9c458a13b1a780006733c034105e6d36 Mon Sep 17 00:00:00 2001
|
||
|
From: Wol <anthony@youngman.org.uk>
|
||
|
Date: Tue, 17 Jan 2017 17:47:05 +0000
|
||
|
Subject: [PATCH] Fix oddity where mdadm did not recognise a relative path
|
||
|
|
||
|
mdadm assumed that a pathname started with a "/", while an array
|
||
|
name didn't. This alters the logic so that if the first character
|
||
|
is not a "/" it tries to open an array, and if that fails it drops
|
||
|
through to the pathname code rather than terminating immediately
|
||
|
with an error.
|
||
|
|
||
|
Signed-off-by: Wol <anthony@youngman.org.uk>
|
||
|
Signed-off-by: Jes Sorensen <Jes.Sorensen@gmail.com>
|
||
|
---
|
||
|
mdadm.c | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/mdadm.c b/mdadm.c
|
||
|
index c3a265b..b5d89e4 100644
|
||
|
--- a/mdadm.c
|
||
|
+++ b/mdadm.c
|
||
|
@@ -1899,12 +1899,12 @@ static int misc_list(struct mddev_dev *devlist,
|
||
|
rv |= SetAction(dv->devname, c->action);
|
||
|
continue;
|
||
|
}
|
||
|
- if (dv->devname[0] == '/')
|
||
|
- mdfd = open_mddev(dv->devname, 1);
|
||
|
- else {
|
||
|
- mdfd = open_dev(dv->devname);
|
||
|
- if (mdfd < 0)
|
||
|
- pr_err("Cannot open %s\n", dv->devname);
|
||
|
+ switch(dv->devname[0] == '/') {
|
||
|
+ case 0:
|
||
|
+ mdfd = open_dev(dv->devname);
|
||
|
+ if (mdfd >= 0) break;
|
||
|
+ case 1:
|
||
|
+ mdfd = open_mddev(dv->devname, 1);
|
||
|
}
|
||
|
if (mdfd>=0) {
|
||
|
switch(dv->disposition) {
|
||
|
--
|
||
|
2.10.2
|
||
|
|