diff options
Diffstat (limited to 'fs/buffer.c')
| -rw-r--r-- | fs/buffer.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index 58e2e7b77372..b5f044283edb 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
| @@ -2312,12 +2312,6 @@ int __block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, | |||
| 2312 | loff_t size; | 2312 | loff_t size; |
| 2313 | int ret; | 2313 | int ret; |
| 2314 | 2314 | ||
| 2315 | /* | ||
| 2316 | * Update file times before taking page lock. We may end up failing the | ||
| 2317 | * fault so this update may be superfluous but who really cares... | ||
| 2318 | */ | ||
| 2319 | file_update_time(vma->vm_file); | ||
| 2320 | |||
| 2321 | lock_page(page); | 2315 | lock_page(page); |
| 2322 | size = i_size_read(inode); | 2316 | size = i_size_read(inode); |
| 2323 | if ((page->mapping != inode->i_mapping) || | 2317 | if ((page->mapping != inode->i_mapping) || |
| @@ -2355,6 +2349,13 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, | |||
| 2355 | struct super_block *sb = vma->vm_file->f_path.dentry->d_inode->i_sb; | 2349 | struct super_block *sb = vma->vm_file->f_path.dentry->d_inode->i_sb; |
| 2356 | 2350 | ||
| 2357 | sb_start_pagefault(sb); | 2351 | sb_start_pagefault(sb); |
| 2352 | |||
| 2353 | /* | ||
| 2354 | * Update file times before taking page lock. We may end up failing the | ||
| 2355 | * fault so this update may be superfluous but who really cares... | ||
| 2356 | */ | ||
| 2357 | file_update_time(vma->vm_file); | ||
| 2358 | |||
| 2358 | ret = __block_page_mkwrite(vma, vmf, get_block); | 2359 | ret = __block_page_mkwrite(vma, vmf, get_block); |
| 2359 | sb_end_pagefault(sb); | 2360 | sb_end_pagefault(sb); |
| 2360 | return block_page_mkwrite_return(ret); | 2361 | return block_page_mkwrite_return(ret); |
