From: Wol Date: Tue, 17 Jan 2017 17:47:05 +0000 (+0000) Subject: Fix oddity where mdadm did not recognise a relative path X-Git-Tag: mdadm-4.1-rc1~262 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb6f40bf9c458a13b1a780006733c034105e6d36;p=thirdparty%2Fmdadm.git 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 Signed-off-by: Jes Sorensen --- diff --git a/mdadm.c b/mdadm.c index c3a265b8..b5d89e43 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) {