summaryrefslogtreecommitdiffstats
path: root/Assemble.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-12-05 05:54:33 +0000
committerNeil Brown <neilb@suse.de>2005-12-05 05:54:33 +0000
commitc06487ce2061b7acfe6bc40bea7ad12393b0e4c6 (patch)
treea6aed423f10c74af40acd662ef09d060123904b7 /Assemble.c
parent8b0dabea0762e2cd786c1539845823ecd914657a (diff)
downloadmdadm-c06487ce2061b7acfe6bc40bea7ad12393b0e4c6.tar.gz
mdadm-c06487ce2061b7acfe6bc40bea7ad12393b0e4c6.tar.xz
mdadm-c06487ce2061b7acfe6bc40bea7ad12393b0e4c6.zip
Improve option parsing
stuff ====Do Not Remove==== Status: ok Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r--Assemble.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/Assemble.c b/Assemble.c
index d251500..c78a1b1 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -204,11 +204,9 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
/* Impossible! */
fprintf(stderr, Name ": fstat failed for %s: %s\n",
devname, strerror(errno));
- close(dfd);
} else if ((stb.st_mode & S_IFMT) != S_IFBLK) {
fprintf(stderr, Name ": %s is not a block device.\n",
devname);
- close(dfd);
} else if (!tst && (tst = guess_super(dfd)) == NULL) {
if ((inargv && verbose >= 0) || verbose > 0)
fprintf(stderr, Name ": no recogniseable superblock\n");
@@ -216,11 +214,10 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
if ((inargv && verbose >= 0) || verbose > 0)
fprintf( stderr, Name ": no RAID superblock on %s\n",
devname);
- close(dfd);
} else {
tst->ss->getinfo_super(&info, &ident2, super);
- close(dfd);
}
+ if (dfd >= 0) close(dfd);
if (ident->uuid_set &&
(!super || same_uuid(info.uuid, ident->uuid, tst->ss->swapuuid)==0)) {