diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/disk-io.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index aab7d89f3ff0..bb6cdbda4f56 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -636,10 +636,9 @@ static int btree_readpage_end_io_hook(struct page *page, u64 start, u64 end, | |||
636 | if (!ret) | 636 | if (!ret) |
637 | set_extent_buffer_uptodate(eb); | 637 | set_extent_buffer_uptodate(eb); |
638 | err: | 638 | err: |
639 | if (test_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) { | 639 | if (reads_done && |
640 | clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags); | 640 | test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) |
641 | btree_readahead_hook(root, eb, eb->start, ret); | 641 | btree_readahead_hook(root, eb, eb->start, ret); |
642 | } | ||
643 | 642 | ||
644 | if (ret) { | 643 | if (ret) { |
645 | /* | 644 | /* |