aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r--fs/btrfs/inode.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index fb8d671d00e6..f4d901786b3c 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -6620,6 +6620,7 @@ int btrfs_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
6620 u64 page_start; 6620 u64 page_start;
6621 u64 page_end; 6621 u64 page_end;
6622 6622
6623 sb_start_pagefault(inode->i_sb);
6623 ret = btrfs_delalloc_reserve_space(inode, PAGE_CACHE_SIZE); 6624 ret = btrfs_delalloc_reserve_space(inode, PAGE_CACHE_SIZE);
6624 if (!ret) { 6625 if (!ret) {
6625 ret = file_update_time(vma->vm_file); 6626 ret = file_update_time(vma->vm_file);
@@ -6709,12 +6710,15 @@ again:
6709 unlock_extent_cached(io_tree, page_start, page_end, &cached_state, GFP_NOFS); 6710 unlock_extent_cached(io_tree, page_start, page_end, &cached_state, GFP_NOFS);
6710 6711
6711out_unlock: 6712out_unlock:
6712 if (!ret) 6713 if (!ret) {
6714 sb_end_pagefault(inode->i_sb);
6713 return VM_FAULT_LOCKED; 6715 return VM_FAULT_LOCKED;
6716 }
6714 unlock_page(page); 6717 unlock_page(page);
6715out: 6718out:
6716 btrfs_delalloc_release_space(inode, PAGE_CACHE_SIZE); 6719 btrfs_delalloc_release_space(inode, PAGE_CACHE_SIZE);
6717out_noreserve: 6720out_noreserve:
6721 sb_end_pagefault(inode->i_sb);
6718 return ret; 6722 return ret;
6719} 6723}
6720 6724