> - the getinfo_super_disks method. I couldn't see why you need this. > All the > info about the state of the arrays should already be available. > If there is something that you need that we don't have, please > explain and > we can see how best to add it back in. For external metadata we have added a metadata handler to get a disk state (a spare or not a spare) based on current metadata state on disk. Ioctl(GET_DISK_INFO) does not have a disk state info for containers (returns 0 - so we don't know if it is a spare or a failed disk). We know that a disk is an array member based on check its state in the array. Since Monitor code on devel-3.2 does not have calls to getinfo_super_disks method, auto-rebuild grabs the first disk in container and tries to move it to a degraded one (without a successes), and the first one happens to be array member and have state = 0 (a good spare). Like all disks in container. There is also a fatal in pol_add, when trying to update policy rules with NULL spare_group: @@ -732,7 +738,8 @@ static int move_spare(struct state *from, struct state *to, continue; pol = devnum_policy(from->devid[d]); - pol_add(&pol, pol_domain, from->spare_group, NULL); + if (from->spare_group) + pol_add(&pol, pol_domain, from->spare_group, NULL); We will send you our FT integrated with your mdadm test suit in a couple of days. Marcin -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html