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>
This commit is contained in:

committed by
Linus Torvalds

parent
fe3cba17c4
commit
cf914a7d65
10
mm/filemap.c
10
mm/filemap.c
@@ -894,15 +894,15 @@ void do_generic_mapping_read(struct address_space *mapping,
|
||||
find_page:
|
||||
page = find_get_page(mapping, index);
|
||||
if (!page) {
|
||||
page_cache_readahead_ondemand(mapping,
|
||||
&ra, filp, page,
|
||||
page_cache_sync_readahead(mapping,
|
||||
&ra, filp,
|
||||
index, last_index - index);
|
||||
page = find_get_page(mapping, index);
|
||||
if (unlikely(page == NULL))
|
||||
goto no_cached_page;
|
||||
}
|
||||
if (PageReadahead(page)) {
|
||||
page_cache_readahead_ondemand(mapping,
|
||||
page_cache_async_readahead(mapping,
|
||||
&ra, filp, page,
|
||||
index, last_index - index);
|
||||
}
|
||||
@@ -1348,14 +1348,14 @@ retry_find:
|
||||
*/
|
||||
if (VM_SequentialReadHint(vma)) {
|
||||
if (!page) {
|
||||
page_cache_readahead_ondemand(mapping, ra, file, page,
|
||||
page_cache_sync_readahead(mapping, ra, file,
|
||||
vmf->pgoff, 1);
|
||||
page = find_lock_page(mapping, vmf->pgoff);
|
||||
if (!page)
|
||||
goto no_cached_page;
|
||||
}
|
||||
if (PageReadahead(page)) {
|
||||
page_cache_readahead_ondemand(mapping, ra, file, page,
|
||||
page_cache_async_readahead(mapping, ra, file, page,
|
||||
vmf->pgoff, 1);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user