diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2007-07-19 01:48:08 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 10:04:44 -0700 |
commit | cf914a7d656e62b9dd3e0dffe4f62b953ae6048d (patch) | |
tree | baf7e79de006ca80eac426d2d1be4c52f5f19624 /fs | |
parent | fe3cba17c49471e99d3421e675fc8b3deaaf0b70 (diff) | |
download | lwn-cf914a7d656e62b9dd3e0dffe4f62b953ae6048d.tar.gz lwn-cf914a7d656e62b9dd3e0dffe4f62b953ae6048d.zip |
readahead: split ondemand readahead interface into two functions
Split ondemand readahead interface into two functions. I think this makes it
a little clearer for non-readahead experts (like Rusty).
Internally they both call ondemand_readahead(), but the page argument is
changed to an obvious boolean flag.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Fengguang Wu <wfg@mail.ustc.edu.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext3/dir.c | 4 | ||||
-rw-r--r-- | fs/ext4/dir.c | 4 | ||||
-rw-r--r-- | fs/splice.c | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/fs/ext3/dir.c b/fs/ext3/dir.c index 3c6d384a2c66..c00723a99f44 100644 --- a/fs/ext3/dir.c +++ b/fs/ext3/dir.c @@ -139,10 +139,10 @@ static int ext3_readdir(struct file * filp, pgoff_t index = map_bh.b_blocknr >> (PAGE_CACHE_SHIFT - inode->i_blkbits); if (!ra_has_index(&filp->f_ra, index)) - page_cache_readahead_ondemand( + page_cache_sync_readahead( sb->s_bdev->bd_inode->i_mapping, &filp->f_ra, filp, - NULL, index, 1); + index, 1); filp->f_ra.prev_index = index; bh = ext3_bread(NULL, inode, blk, 0, &err); } diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index 0a872a09fed8..3ab01c04e00c 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c @@ -138,10 +138,10 @@ static int ext4_readdir(struct file * filp, pgoff_t index = map_bh.b_blocknr >> (PAGE_CACHE_SHIFT - inode->i_blkbits); if (!ra_has_index(&filp->f_ra, index)) - page_cache_readahead_ondemand( + page_cache_sync_readahead( sb->s_bdev->bd_inode->i_mapping, &filp->f_ra, filp, - NULL, index, 1); + index, 1); filp->f_ra.prev_index = index; bh = ext4_bread(NULL, inode, blk, 0, &err); } diff --git a/fs/splice.c b/fs/splice.c index 6ddd0329f866..22496d2a73fa 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -295,8 +295,8 @@ __generic_file_splice_read(struct file *in, loff_t *ppos, * readahead/allocate the rest and fill in the holes. */ if (spd.nr_pages < nr_pages) - page_cache_readahead_ondemand(mapping, &in->f_ra, in, - NULL, index, req_pages - spd.nr_pages); + page_cache_sync_readahead(mapping, &in->f_ra, in, + index, req_pages - spd.nr_pages); error = 0; while (spd.nr_pages < nr_pages) { @@ -352,7 +352,7 @@ __generic_file_splice_read(struct file *in, loff_t *ppos, page = pages[page_nr]; if (PageReadahead(page)) - page_cache_readahead_ondemand(mapping, &in->f_ra, in, + page_cache_async_readahead(mapping, &in->f_ra, in, page, index, req_pages - page_nr); /* |