Wols Lists <antlists@xxxxxxxxxxxxxxx> writes: > From 4ce784307a9004124392ce48432960d7ca94d0bf Mon Sep 17 00:00:00 2001 > From: Wol <anthony@xxxxxxxxxxxxxxx> > 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@xxxxxxxxxxxxxxx> > --- > 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); I thought this was still pending but going back, it looks like I did apply it. The problem is I noticed a major issue in the patch, which doesn't belong in code, it is doing 'if () break' on the same line. Mind sending me a patch to fix that. Thanks, Jes -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html