• Chris Mason's avatar
    Btrfs: Don't loop forever on metadata IO failures · 76a05b35
    Chris Mason authored
    When a btrfs metadata read fails, the first thing we try to do is find
    a good copy on another mirror of the block.  If this fails, read_tree_block()
    ends up returning a buffer that isn't up to date.
    
    The btrfs btree reading code was reworked to drop locks and repeat
    the search when IO was done, but the changes didn't add a check for failed
    reads.  The end result was looping forever on buffers that were never
    going to become up to date.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    76a05b35
ctree.c 111 KB