Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> diff --git a/mm/readahead.c b/mm/readahead.c index daed28d..3932f28 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -166,6 +166,8 @@ __do_page_cache_readahead(struct address_space *mapping, struct file *filp, goto out; end_index = ((isize - 1) >> PAGE_CACHE_SHIFT); + if (offset + nr_to_read > end_index + 1) + nr_to_read = end_index - offset + 1; /* * Preallocate as many pages as we will need. @@ -173,9 +175,6 @@ __do_page_cache_readahead(struct address_space *mapping, struct file *filp, for (page_idx = 0; page_idx < nr_to_read; page_idx++) { pgoff_t page_offset = offset + page_idx; - if (page_offset > end_index) - break; - rcu_read_lock(); page = radix_tree_lookup(&mapping->page_tree, page_offset); rcu_read_unlock(); -- 1.7.9.5 -- 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>