mm: double mark_page_accessed() in read_cache_page_async()
authorPeter Zijlstra <peterz@infradead.org>
Sun, 8 Jul 2007 08:13:06 +0000 (01:13 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sun, 8 Jul 2007 17:13:21 +0000 (10:13 -0700)
Fix a post-2.6.21 regression.

read_cache_page_async() has 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@chello.nl>
Acked-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/filemap.c

index edb1b0b5cc8dc64367eb9950378a9829a1e07241..d1d9814f99ddd51f982799ca70fa86762d7b48c0 100644 (file)
@@ -1786,7 +1786,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;