On Sat, Sep 22, 2012 at 04:03:11PM +0530, raghu.prabhu13@xxxxxxxxx wrote: > From: Raghavendra D Prabhu <rprabhu@xxxxxxxxxxx> > > If page lookup from radix_tree_lookup is successful and its index page_idx == > nr_to_read - lookahead_size, then SetPageReadahead never gets called, so this > fixes that. NAK. Sorry. It's actually an intentional behavior, so that for the common cases of many cached files that are accessed frequently, no PG_readahead will be set at all to pointlessly trap into the readahead routines once and again. Perhaps we need a patch for commenting that case. :) Thanks, Fengguang > Signed-off-by: Raghavendra D Prabhu <rprabhu@xxxxxxxxxxx> > --- > mm/readahead.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mm/readahead.c b/mm/readahead.c > index 461fcc0..fec726c 100644 > --- a/mm/readahead.c > +++ b/mm/readahead.c > @@ -189,8 +189,10 @@ __do_page_cache_readahead(struct address_space *mapping, struct file *filp, > break; > page->index = page_offset; > list_add(&page->lru, &page_pool); > - if (page_idx == nr_to_read - lookahead_size) > + if (page_idx >= nr_to_read - lookahead_size) { > SetPageReadahead(page); > + lookahead_size = 0; > + } > ret++; > } > > -- > 1.7.12.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>