Since commit 20dc76d15b40 ("imsm: Set disk slot number") mdadm sets slot number for each disk in imsm array. Now auto-assemble determines devices using slot number and ignores devices on the same slot that have older generation number. It causes infinit loop if failed device is still visible in system (it has metadata, but it is not merged with exisiting array). To avoid it, out-of-sync device should be added to the best[]. Later mdadm adds it as spare to the container. Imsm doesn't support disk replacement feature, so it can use rooms for replacements. Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@xxxxxxxxx> --- Assemble.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assemble.c b/Assemble.c index e83d550..32e6f6f 100644 --- a/Assemble.c +++ b/Assemble.c @@ -779,6 +779,8 @@ static int load_devices(struct devs *devices, char *devmap, if (best[i] == -1 || (devices[best[i]].i.events < devices[devcnt].i.events)) best[i] = devcnt; + else if (st->ss == &super_imsm) + best[i+1] = devcnt; } devcnt++; } -- 1.8.3.1 -- 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