[PATCH] splice: be smarter about calling do_page_cache_readahead()
We don't want to call into the read-ahead logic unless we are at the start of a page, _or_ we have multiple pages to read. Signed-off-by: Jens Axboe <axboe@suse.de>
This commit is contained in:
parent
49d0b21be2
commit
0b749ce380
|
@ -250,9 +250,12 @@ static int __generic_file_splice_read(struct file *in, struct inode *pipe,
|
||||||
nr_pages = PIPE_BUFFERS;
|
nr_pages = PIPE_BUFFERS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* initiate read-ahead on this page range
|
* initiate read-ahead on this page range. however, don't call into
|
||||||
|
* read-ahead if this is a non-zero offset (we are likely doing small
|
||||||
|
* chunk splice and the page is already there) for a single page.
|
||||||
*/
|
*/
|
||||||
do_page_cache_readahead(mapping, in, index, nr_pages);
|
if (!offset || nr_pages > 1)
|
||||||
|
do_page_cache_readahead(mapping, in, index, nr_pages);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* now fill in the holes
|
* now fill in the holes
|
||||||
|
|
Loading…
Reference in New Issue