• Heinz Mauelshagen's avatar
    dm raid: fix activation check in validate_raid_redundancy() · f4af3f82
    Heinz Mauelshagen authored
    During growing reshapes (i.e. stripes being added to a raid set), the
    new stripe images are not in-sync and not part of the raid set until
    the reshape is started.
    
    LVM2 has to request multiple table reloads involving superblock updates
    in order to reflect proper size of SubLVs in the cluster.  Before a stripe
    adding reshape starts, validate_raid_redundancy() fails as a result of that
    because it checks the total number of devices against the number of rebuild
    ones rather than the actual ones in the raid set (as retrieved from the
    superblock) thus resulting in failed raid4/5/6/10 redundancy checks.
    
    E.g. convert 3 stripes -> 7 stripes raid5 (which only allows for maximum
    1 device to fail) requesting +4 delta disks causing 4 devices to rebuild
    during reshaping thus failing activation.
    
    To fix this, move validate_raid_redundancy() to get access to the
    current raid_set members.
    Signed-off-by: default avatarHeinz Mauelshagen <heinzm@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    f4af3f82
dm-raid.c 112 KB