| From c8236db9cd7aa492dcfcdcca702638e704abed49 Mon Sep 17 00:00:00 2001 |
| From: Josef Bacik <josef@redhat.com> |
| Date: Sun, 5 Jul 2009 12:08:18 -0700 |
| Subject: mm: mark page accessed before we write_end() |
| |
| From: Josef Bacik <josef@redhat.com> |
| |
| 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 <jbacik@redhat.com> |
| Acked-by: Nick Piggin <npiggin@suse.de> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| mm/filemap.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/mm/filemap.c |
| +++ b/mm/filemap.c |
| @@ -2249,6 +2249,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)) |