diff options
author | NeilBrown <neilb@suse.de> | 2008-11-04 10:35:35 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2008-11-04 10:35:35 +1100 |
commit | adf0493cba2355fc3714e6ab265f2b6b7de894d8 (patch) | |
tree | 80d4139498f20054189f4d44723a69a3ebb0a7e6 | |
parent | 6be1d39d1dafce71c9c7f5bc74ef3fbd30e3765e (diff) |
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>
-rw-r--r-- | mdadm.c | 11 |
1 files changed, 3 insertions, 8 deletions
@@ -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, |