• Shaohua Li's avatar
    md: clear CHANGE_PENDING in readonly array · d4929add
    Shaohua Li authored
    If faulty disks of an array are more than allowed degraded number, the
    array enters error handling. It will be marked as read-only with
    MD_CHANGE_PENDING/RECOVERY_NEEDED set. But currently recovery doesn't
    clear CHANGE_PENDING bit for read-only array.  If MD_CHANGE_PENDING is
    set for a raid5 array, all returned IO will be hold on a list till the
    bit is clear. But recovery nevery clears this bit, the IO is always in
    pending state and nevery finish. This has bad effects like upper layer
    can't get an IO error and the array can't be stopped.
    
    Fixes: c3cce6cd ("md/raid5: ensure device failure recorded before write request returns.")
    Signed-off-by: default avatarShaohua Li <shli@fb.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.com>
    d4929add
md.c 234 KB