• NeilBrown's avatar
    md/raid10: abort delayed writes when device fails. · a9ae93c8
    NeilBrown authored
    When writing to an array with a bitmap enabled, the writes are grouped
    in batches which are preceded by an update to the bitmap.
    
    It is quite likely if that a drive develops a problem which is not
    media related, that the bitmap write will be the first to report an
    error and cause the device to be marked faulty (as the bitmap write is
    at the start of a batch).
    
    In this case, there is point submiting the subsequent writes to the
    failed device - that just wastes times.
    
    So re-check the Faulty state of a device before submitting a
    delayed write.
    
    This requires that we keep the 'rdev', rather than the 'bdev' in the
    bio, then swap in the bdev just before final submission.
    Reported-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.com>
    Signed-off-by: default avatarShaohua Li <shli@fb.com>
    a9ae93c8
raid10.c 129 KB