]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
md: fix buglet in RAID5 -> RAID0 conversion.
authorNeilBrown <neilb@suse.de>
Wed, 26 Jun 2013 01:55:20 +0000 (11:55 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 26 Jun 2013 02:38:19 +0000 (12:38 +1000)
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>
drivers/md/raid0.c

index fcf65e512cf51a02413ae4439e72ce7ab6675159..c4d420b7d2f43d0804e1c1a94d88ca63484b5ec3 100644 (file)
@@ -597,6 +597,7 @@ static void *raid0_takeover_raid45(struct mddev *mddev)
                               mdname(mddev));
                        return ERR_PTR(-EINVAL);
                }
+               rdev->sectors = mddev->dev_sectors;
        }
 
        /* Set new parameters */