From: Josef Bacik Date: Sun, 5 Jul 2009 19:08:18 +0000 (-0700) Subject: mm: mark page accessed before we write_end() X-Git-Tag: v2.6.27.29~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e9d83e0a2edc0e528434bad4a7018533a27219cc;p=thirdparty%2Fkernel%2Fstable.git mm: mark page accessed before we write_end() commit c8236db9cd7aa492dcfcdcca702638e704abed49 upstream. In testing a backport of the write_begin/write_end AOPs, a 10% re-read regression was noticed when running iozone. This regression was introduced because the old AOPs would always do a mark_page_accessed(page) after the commit_write, but when the new AOPs where introduced, the only place this was kept was in pagecache_write_end(). This patch does the same thing in the generic case as what is done in pagecache_write_end(), which is just to mark the page accessed before we do write_end(). Signed-off-by: Josef Bacik Acked-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/mm/filemap.c b/mm/filemap.c index 8a477d378977d..bff0b000cec2d 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2441,6 +2441,7 @@ again: pagefault_enable(); flush_dcache_page(page); + mark_page_accessed(page); status = a_ops->write_end(file, mapping, pos, bytes, copied, page, fsdata); if (unlikely(status < 0))