Assemble: fix assembly in the delta_disks > max_degraded case
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@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
4411fb1749
commit
dcc4210f58
|
@ -868,7 +868,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
|
||||
|
|
Loading…
Reference in New Issue