Re: [PATCH][BUG 10227] readahead ret value fix

From: Dave Young
Date: Fri Mar 14 2008 - 07:08:24 EST


On Fri, Mar 14, 2008 at 6:49 PM, Dave Young <hidave.darkstar@xxxxxxxxx> wrote:
> If the page_offset > end_index, the return value should be updated to 0,
> avoiding the redundant read_pages
>
> Signed-off-by: Dave Young <hidave.darkstar@xxxxxxxxx>
>
> ---
> mm/readahead.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff -upr linux/mm/readahead.c linux.new/mm/readahead.c
> --- linux/mm/readahead.c 2008-03-14 18:38:12.000000000 +0800
> +++ linux.new/mm/readahead.c 2008-03-14 18:38:58.000000000 +0800
> @@ -144,8 +144,10 @@ __do_page_cache_readahead(struct address
> for (page_idx = 0; page_idx < nr_to_read; page_idx++) {
> pgoff_t page_offset = offset + page_idx;
>
> - if (page_offset > end_index)
> + if (page_offset > end_index) {
> + ret = 0;
> break;
> + }
>
> rcu_read_lock();
> page = radix_tree_lookup(&mapping->page_tree, page_offset);
>

It's not right at all, sorry for the wrong quick patch.

Anyway, please see the following debug info of me
Mar 14 18:33:51 darkstar kernel: [ 19.073085] 3c59x: Donald Becker and others.
Mar 14 18:34:39 darkstar kernel: [ 117.837850] #0 page_offset : 0,
end_index : 2 ret: 0
Mar 14 18:34:39 darkstar kernel: [ 117.837854] #1 page_offset : 0,
end_index : 2
Mar 14 18:34:39 darkstar kernel: [ 117.837861] #0 page_offset : 1,
end_index : 2 ret: 1
Mar 14 18:34:39 darkstar kernel: [ 117.837873] #1 page_offset : 1,
end_index : 2
Mar 14 18:34:39 darkstar kernel: [ 117.837888] #0 page_offset : 2,
end_index : 2 ret: 2
Mar 14 18:34:39 darkstar kernel: [ 117.837911] #1 page_offset : 2,
end_index : 2
Mar 14 18:34:39 darkstar kernel: [ 117.837922] #0 page_offset : 3,
end_index : 2 ret: 3
Mar 14 18:34:40 darkstar kernel: [ 118.051620] #0 page_offset : 3,
end_index : 2 ret: 0
Mar 14 18:34:40 darkstar kernel: [ 118.051626] zisofs : req invalid
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/