diff options
author | Chris Mason <chris.mason@oracle.com> | 2009-05-14 13:24:30 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2009-05-14 14:00:32 -0400 |
commit | 76a05b35a320e8c968d0fec8f512a1acae227309 (patch) | |
tree | 611875a5ea273de7208c84884a0ec59d985eb614 /fs/affs/inode.c | |
parent | 2757495c906113896b378bf084708846273c87b2 (diff) | |
download | blackbird-op-linux-76a05b35a320e8c968d0fec8f512a1acae227309.tar.gz blackbird-op-linux-76a05b35a320e8c968d0fec8f512a1acae227309.zip |
Btrfs: Don't loop forever on metadata IO failures
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: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/affs/inode.c')
0 files changed, 0 insertions, 0 deletions