summaryrefslogtreecommitdiff
path: root/Incremental.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2010-08-19 16:48:34 +1000
committerNeilBrown <neilb@suse.de>2010-09-06 11:26:28 +1000
commit0f22b998fb9cf8478810b89cd50fa5b4fbf11d38 (patch)
treea9c28e7b9b983519c83a6fafb638f48536b71683 /Incremental.c
parent64436f0628a14f4e979b93bea57aba4b4c6143e8 (diff)
Add mbr pseudo metadata handler.
To support incorpating a new bare device into a collection of arrays - one partition each - mdadm needs a modest understanding of partition tables. The main needs to be able to recognise a partition table on one device and copy it onto another. This will be done using pseudo metadata types 'mbr' and 'gpt'. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Incremental.c')
-rw-r--r--Incremental.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Incremental.c b/Incremental.c
index fe6aad28..bcbd78d0 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -142,11 +142,13 @@ int Incremental(char *devname, int verbose, int runstop,
rv = try_spare(devname, &dfd, policy, st, verbose);
goto out;
}
- if (st->ss->load_super(st, dfd, NULL)) {
+ if (st->ss->compare_super == NULL ||
+ st->ss->load_super(st, dfd, NULL)) {
if (verbose >= 0)
fprintf(stderr, Name ": no RAID superblock on %s.\n",
devname);
rv = try_spare(devname, &dfd, policy, st, verbose);
+ free(st);
goto out;
}
close (dfd); dfd = -1;