From: NeilBrown Date: Wed, 5 Nov 2014 05:21:42 +0000 (+1100) Subject: Incremental: don't be distracted by partition table when calling try_spare. X-Git-Tag: mdadm-3.3.3~96 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=6c90491f44024af25c9a9a322b6a4fb21e695540 Incremental: don't be distracted by partition table when calling try_spare. Currently a partition table on a device makes "mdadm -I" think the array has a particular metadata type and so will only add it to an array of that (partition table) type .. which doesn't make any sense. So tell guess_super to only look for 'array' metadata. Reported-by: Caspar Smit Signed-off-by: NeilBrown --- diff --git a/Incremental.c b/Incremental.c index c9372587..13b68bc0 100644 --- a/Incremental.c +++ b/Incremental.c @@ -196,13 +196,13 @@ int Incremental(struct mddev_dev *devlist, struct context *c, policy = disk_policy(&dinfo); have_target = policy_check_path(&dinfo, &target_array); - if (st == NULL && (st = guess_super(dfd)) == NULL) { + if (st == NULL && (st = guess_super_type(dfd, guess_array)) == NULL) { if (c->verbose >= 0) pr_err("no recognisable superblock on %s.\n", devname); rv = try_spare(devname, &dfd, policy, have_target ? &target_array : NULL, - st, c->verbose); + NULL, c->verbose); goto out; } st->ignore_hw_compat = 1;