|
@@ -477,9 +477,9 @@ static int btree_read_extent_buffer_pages(struct btrfs_fs_info *fs_info,
|
|
int mirror_num = 0;
|
|
int mirror_num = 0;
|
|
int failed_mirror = 0;
|
|
int failed_mirror = 0;
|
|
|
|
|
|
- clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags);
|
|
|
|
io_tree = &BTRFS_I(fs_info->btree_inode)->io_tree;
|
|
io_tree = &BTRFS_I(fs_info->btree_inode)->io_tree;
|
|
while (1) {
|
|
while (1) {
|
|
|
|
+ clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags);
|
|
ret = read_extent_buffer_pages(io_tree, eb, WAIT_COMPLETE,
|
|
ret = read_extent_buffer_pages(io_tree, eb, WAIT_COMPLETE,
|
|
mirror_num);
|
|
mirror_num);
|
|
if (!ret) {
|
|
if (!ret) {
|
|
@@ -493,15 +493,6 @@ static int btree_read_extent_buffer_pages(struct btrfs_fs_info *fs_info,
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- /*
|
|
|
|
- * This buffer's crc is fine, but its contents are corrupted, so
|
|
|
|
- * there is no reason to read the other copies, they won't be
|
|
|
|
- * any less wrong.
|
|
|
|
- */
|
|
|
|
- if (test_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags) ||
|
|
|
|
- ret == -EUCLEAN)
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
num_copies = btrfs_num_copies(fs_info,
|
|
num_copies = btrfs_num_copies(fs_info,
|
|
eb->start, eb->len);
|
|
eb->start, eb->len);
|
|
if (num_copies == 1)
|
|
if (num_copies == 1)
|