diff options
author | Josef Bacik <josef@redhat.com> | 2009-07-05 12:08:18 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-07-30 14:40:13 -0700 |
commit | b8fde9988b9d0934af55dd2269dafec15f5f6302 (patch) | |
tree | 39c3764069609e0f9a1da232e25770e1e3276c74 /mm | |
parent | 4752849e0a4b09acb68b029b01d8eb2250e92f6c (diff) |
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 <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>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/filemap.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 1b60f30cebf..0b20d1f74ff 100644 --- 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)) |