From 66eb2c93a619eb1d79dc653fd91add159aa3d1ff Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 22 Nov 2012 17:04:20 +1100 Subject: [PATCH] Assemble: ensure that d arrays are not auto-assembled. It isn't enough to simply not assemble arrays found to be called , as the final stage of auto-assemble doesn't check for names in mdadm.conf. So add a check to Assemble, similar to the check in Incremental() Reported-by: Mike Frysinger Signed-off-by: NeilBrown --- Assemble.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Assemble.c b/Assemble.c index c2fa0961..9ef1bf0e 100644 --- a/Assemble.c +++ b/Assemble.c @@ -362,6 +362,8 @@ static int select_devices(struct mddev_dev *devlist, tmpdev = NULL; goto loop; } else { + int rv = 0; + struct mddev_ident *match; content = *contentp; tst->ss->getinfo_super(tst, content, NULL); @@ -370,7 +372,20 @@ static int select_devices(struct mddev_dev *devlist, c->homehost, c->update, report_missmatch ? devname : NULL)) goto loop; - + + match = conf_match(tst, content, devname, + report_missmatch ? c->verbose : -1, + &rv); + if (!match && rv == 2) + goto loop; + if (match && match->devname && + strcasecmp(match->devname, "") == 0) { + if (report_missmatch) + pr_err("%s is a member of an explicitly ignored array\n", + devname); + goto loop; + } + /* should be safe to try an exclusive open now, we * have rejected anything that some other mdadm might * be looking at -- 2.47.3