diff options
-rw-r--r-- | fs/btrfs/file.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index a2b1fc536fdd..9ecb9f3bd057 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1843,7 +1843,6 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf) size_t fsize = folio_size(folio); vm_fault_t ret; int ret2; - int reserved = 0; u64 reserved_space; u64 page_start; u64 page_end; @@ -1866,17 +1865,17 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf) */ ret2 = btrfs_delalloc_reserve_space(BTRFS_I(inode), &data_reserved, page_start, reserved_space); - if (!ret2) { - ret2 = file_update_time(vmf->vma->vm_file); - reserved = 1; - } if (ret2) { ret = vmf_error(ret2); - if (reserved) - goto out; goto out_noreserve; } + ret2 = file_update_time(vmf->vma->vm_file); + if (ret2) { + ret = vmf_error(ret2); + goto out; + } + /* Make the VM retry the fault. */ ret = VM_FAULT_NOPAGE; again: @@ -1972,9 +1971,9 @@ out: btrfs_delalloc_release_extents(BTRFS_I(inode), fsize); btrfs_delalloc_release_space(BTRFS_I(inode), data_reserved, page_start, reserved_space, true); + extent_changeset_free(data_reserved); out_noreserve: sb_end_pagefault(inode->i_sb); - extent_changeset_free(data_reserved); return ret; } |