Avoid opening md device twice in particular '--assemble' instance.
When mdadm --assemble /dev/whatever is given, mdadm will treat it as though '--scan' were given, even though it wasn't. In this case, the code opens /dev/whatever twice, which is pointless. We already know /dev/whatever is open at this point, so remove the 'open' and the tests, and make sure it is always closed afterwards. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
6be1d39d1d
commit
adf0493cba
11
mdadm.c
11
mdadm.c
|
@ -1008,17 +1008,12 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, Name ": %s not identified in config file.\n",
|
||||
devlist->devname);
|
||||
rv |= 1;
|
||||
close(mdfd);
|
||||
} else {
|
||||
mdfd = create_mddev(devlist->devname,
|
||||
array_ident->autof ? array_ident->autof : autof);
|
||||
if (mdfd < 0)
|
||||
rv |= 1;
|
||||
else {
|
||||
rv |= Assemble(ss, devlist->devname, mdfd, array_ident,
|
||||
rv |= Assemble(ss, devlist->devname, mdfd, array_ident,
|
||||
NULL, backup_file,
|
||||
readonly, runstop, update, homehost, verbose-quiet, force);
|
||||
close(mdfd);
|
||||
}
|
||||
close(mdfd);
|
||||
}
|
||||
} else if (!scan)
|
||||
rv = Assemble(ss, devlist->devname, mdfd, &ident,
|
||||
|
|
Loading…
Reference in New Issue