summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_io.c
diff options
context:
space:
mode:
authorArne Jansen2011-06-10 13:55:54 +0200
committerArne Jansen2011-10-02 08:48:44 +0200
commit4bb31e928d1a47f5bd046ecb176b8eff7c589fc0 (patch)
tree61693e91f7a179b75cc43f5bcb504d50a342ecb7 /fs/btrfs/extent_io.c
parentbtrfs: initial readahead code and prototypes (diff)
downloadkernel-qcow2-linux-4bb31e928d1a47f5bd046ecb176b8eff7c589fc0.tar.gz
kernel-qcow2-linux-4bb31e928d1a47f5bd046ecb176b8eff7c589fc0.tar.xz
kernel-qcow2-linux-4bb31e928d1a47f5bd046ecb176b8eff7c589fc0.zip
btrfs: hooks for readahead
This adds the hooks needed for readahead. In the readpage_end_io_hook, the extent state is checked for the EXTENT_READAHEAD flag. Only in this case the readahead hook is called, to keep the impact on non-ra as low as possible. Additionally, a hook for a failed IO is added, otherwise readahead would wait indefinitely for the extent to finish. Changes for v2: - eliminate race condition Signed-off-by: Arne Jansen <sensille@gmx.net>
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r--fs/btrfs/extent_io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 823028e73cf8..deba714236d7 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -1731,7 +1731,7 @@ static void end_bio_extent_readpage(struct bio *bio, int err)
if (!uptodate && tree->ops &&
tree->ops->readpage_io_failed_hook) {
ret = tree->ops->readpage_io_failed_hook(bio, page,
- start, end, NULL);
+ start, end, state);
if (ret == 0) {
uptodate =
test_bit(BIO_UPTODATE, &bio->bi_flags);