Skip to content

Commit eea136d

Browse files
committed
md: fix buglet in RAID5 -> RAID0 conversion.
RAID5 uses a 'per-array' value for the 'size' of each device. RAID0 uses a 'per-device' value - it can be different for each device. When converting a RAID5 to a RAID0 we must ensure that the per-device size of each device matches the per-array size for the RAID5, else the array will change size. If the metadata cannot record a changed per-device size (as is the case with v0.90 metadata) the array could get bigger on restart. This does not cause data corruption, so it not a big issue and is mainly yet another a reason to not use 0.90. Signed-off-by: NeilBrown <[email protected]>
1 parent 725d6e5 commit eea136d

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

drivers/md/raid0.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,7 @@ static void *raid0_takeover_raid45(struct mddev *mddev)
597597
mdname(mddev));
598598
return ERR_PTR(-EINVAL);
599599
}
600+
rdev->sectors = mddev->dev_sectors;
600601
}
601602

602603
/* Set new parameters */

0 commit comments

Comments
 (0)