From: Dan Williams <dan.j.williams@xxxxxxxxx> Incremental assembly works on such an array because the kernel sees the disk as in-sync and that the array is reshaping. Teach Assemble() the same assumptions. This is only needed on kernels that do not initialize ->recovery_offset when activating spares for reshape. Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> --- Assemble.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/Assemble.c b/Assemble.c index afd4e60..409f0d7 100644 --- a/Assemble.c +++ b/Assemble.c @@ -804,7 +804,9 @@ int Assemble(struct supertype *st, char *mddev, devices[most_recent].i.events) { devices[j].uptodate = 1; if (i < content->array.raid_disks) { - if (devices[j].i.recovery_start == MaxSector) { + if (devices[j].i.recovery_start == MaxSector || + (content->reshape_active && + j >= content->array.raid_disks - content->delta_disks)) { okcnt++; avail[i]=1; } else -- 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