Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <neilb@suse.de>

NeilBrown eea136d6 725d6e57

+1
+1
drivers/md/raid0.c
··· 597 597 mdname(mddev)); 598 598 return ERR_PTR(-EINVAL); 599 599 } 600 + rdev->sectors = mddev->dev_sectors; 600 601 } 601 602 602 603 /* Set new parameters */