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:
NeilBrown 2008-11-04 10:35:35 +11:00
parent 6be1d39d1d
commit adf0493cba
1 changed files with 3 additions and 8 deletions

11
mdadm.c
View File

@ -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,