• NeilBrown's avatar
    md/raid5: Avoid BUG caused by multiple failures. · 8cfa7b0f
    NeilBrown authored
    While preparing to write a stripe we keep the parity block or blocks
    locked (R5_LOCKED) - towards the end of schedule_reconstruction.
    
    If the array is discovered to have failed before this write completes
    we can leave those blocks LOCKED, and init_stripe will notice that a
    free stripe still has a locked block and will complain.
    
    So clear the R5_LOCKED flag in handle_failed_stripe, and demote the
    'BUG' to a 'WARN_ON'.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    8cfa7b0f
raid5.c 155 KB