diff options
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/disk-io.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 3f0b6d1936e8..6d776717d8b3 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -477,9 +477,9 @@ static int btree_read_extent_buffer_pages(struct btrfs_fs_info *fs_info, | |||
477 | int mirror_num = 0; | 477 | int mirror_num = 0; |
478 | int failed_mirror = 0; | 478 | int failed_mirror = 0; |
479 | 479 | ||
480 | clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); | ||
481 | io_tree = &BTRFS_I(fs_info->btree_inode)->io_tree; | 480 | io_tree = &BTRFS_I(fs_info->btree_inode)->io_tree; |
482 | while (1) { | 481 | while (1) { |
482 | clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); | ||
483 | ret = read_extent_buffer_pages(io_tree, eb, WAIT_COMPLETE, | 483 | ret = read_extent_buffer_pages(io_tree, eb, WAIT_COMPLETE, |
484 | mirror_num); | 484 | mirror_num); |
485 | if (!ret) { | 485 | if (!ret) { |
@@ -493,15 +493,6 @@ static int btree_read_extent_buffer_pages(struct btrfs_fs_info *fs_info, | |||
493 | break; | 493 | break; |
494 | } | 494 | } |
495 | 495 | ||
496 | /* | ||
497 | * This buffer's crc is fine, but its contents are corrupted, so | ||
498 | * there is no reason to read the other copies, they won't be | ||
499 | * any less wrong. | ||
500 | */ | ||
501 | if (test_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags) || | ||
502 | ret == -EUCLEAN) | ||
503 | break; | ||
504 | |||
505 | num_copies = btrfs_num_copies(fs_info, | 496 | num_copies = btrfs_num_copies(fs_info, |
506 | eb->start, eb->len); | 497 | eb->start, eb->len); |
507 | if (num_copies == 1) | 498 | if (num_copies == 1) |