• Neil Brown's avatar
    md: clear Blocked flag on failed devices when array is read-only. · ab16bfc7
    Neil Brown authored
    The Blocked flag indicates that a device has failed but that this
    fact hasn't been recorded in the metadata yet.  Writes to such
    devices cannot be allowed until the metadata has been updated.
    
    On a read-only array, the Blocked flag will never be cleared.
    This prevents the device being removed from the array.
    
    If the metadata is being handled by the kernel
    (i.e. !mddev->external), then we can be sure that if the array is
    switch to writable, then a metadata update will happen and will
    record the failure.  So we don't need the flag set.
    
    If metadata is externally managed, it is upto the external manager
    to clear the 'blocked' flag.
    Reported-by: default avatarXiaoNi <xni@redhat.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    ab16bfc7
md.c 233 KB