Btrfs: Don't loop forever on metadata IO failures
authorChris Mason <chris.mason@oracle.com>
Thu, 14 May 2009 17:24:30 +0000 (13:24 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 14 May 2009 18:00:32 +0000 (14:00 -0400)
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>

No differences found