Re: [PATCH] mm: double mark_page_accessed() inread_cache_page_async()

From: Andrew Morton
Date: Fri Jul 06 2007 - 18:57:24 EST


On Fri, 06 Jul 2007 18:03:54 +0200
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> read_cache_page_async() seems to have two invocations of
> mark_page_accessed() which will launch pages right onto the active list.
>
> Remove the first one, keeping the latter one. This avoids marking
> unwanted pages active (in the retry loop).
>
> Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> ---
> mm/filemap.c | 1 -
> 1 file changed, 1 deletion(-)
>
> Index: linux-2.6/mm/filemap.c
> ===================================================================
> --- linux-2.6.orig/mm/filemap.c
> +++ linux-2.6/mm/filemap.c
> @@ -1588,7 +1588,6 @@ retry:
> page = __read_cache_page(mapping, index, filler, data);
> if (IS_ERR(page))
> return page;
> - mark_page_accessed(page);
> if (PageUptodate(page))
> goto out;
>
>

Thanks for catching this. It is a post-2.6.21 regression.

We cannot afford to do stuff like this.
-
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/