diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/buffer.c | 13 | ||||
-rw-r--r-- | fs/ext4/inode.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/file.c | 1 |
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); |