aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/buffer.c13
-rw-r--r--fs/ext4/inode.c1
-rw-r--r--fs/nilfs2/file.c1
3 files changed, 9 insertions, 6 deletions
diff --git a/fs/buffer.c b/fs/buffer.c
index 9f6d2e41281..1fe3968357a 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2318,12 +2318,6 @@ int __block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
2318 loff_t size; 2318 loff_t size;
2319 int ret; 2319 int ret;
2320 2320
2321 /*
2322 * Update file times before taking page lock. We may end up failing the
2323 * fault so this update may be superfluous but who really cares...
2324 */
2325 file_update_time(vma->vm_file);
2326
2327 lock_page(page); 2321 lock_page(page);
2328 size = i_size_read(inode); 2322 size = i_size_read(inode);
2329 if ((page->mapping != inode->i_mapping) || 2323 if ((page->mapping != inode->i_mapping) ||
@@ -2361,6 +2355,13 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
2361 struct super_block *sb = vma->vm_file->f_path.dentry->d_inode->i_sb; 2355 struct super_block *sb = vma->vm_file->f_path.dentry->d_inode->i_sb;
2362 2356
2363 sb_start_pagefault(sb); 2357 sb_start_pagefault(sb);
2358
2359 /*
2360 * Update file times before taking page lock. We may end up failing the
2361 * fault so this update may be superfluous but who really cares...
2362 */
2363 file_update_time(vma->vm_file);
2364
2364 ret = __block_page_mkwrite(vma, vmf, get_block); 2365 ret = __block_page_mkwrite(vma, vmf, get_block);
2365 sb_end_pagefault(sb); 2366 sb_end_pagefault(sb);
2366 return block_page_mkwrite_return(ret); 2367 return block_page_mkwrite_return(ret);
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 09308ad0f31..f18e786e87b 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4788,6 +4788,7 @@ int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
4788 int retries = 0; 4788 int retries = 0;
4789 4789
4790 sb_start_pagefault(inode->i_sb); 4790 sb_start_pagefault(inode->i_sb);
4791 file_update_time(vma->vm_file);
4791 /* Delalloc case is easy... */ 4792 /* Delalloc case is easy... */
4792 if (test_opt(inode->i_sb, DELALLOC) && 4793 if (test_opt(inode->i_sb, DELALLOC) &&
4793 !ext4_should_journal_data(inode) && 4794 !ext4_should_journal_data(inode) &&
diff --git a/fs/nilfs2/file.c b/fs/nilfs2/file.c
index a4d56ac02e6..5b387a4c293 100644
--- a/fs/nilfs2/file.c
+++ b/fs/nilfs2/file.c
@@ -116,6 +116,7 @@ static int nilfs_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
116 if (unlikely(ret)) 116 if (unlikely(ret))
117 goto out; 117 goto out;
118 118
119 file_update_time(vma->vm_file);
119 ret = __block_page_mkwrite(vma, vmf, nilfs_get_block); 120 ret = __block_page_mkwrite(vma, vmf, nilfs_get_block);
120 if (ret) { 121 if (ret) {
121 nilfs_transaction_abort(inode->i_sb); 122 nilfs_transaction_abort(inode->i_sb);