aboutsummaryrefslogtreecommitdiff
path: root/fs/btrfs/qgroup.c
diff options
context:
space:
mode:
authorGravatar David Sterba <dsterba@suse.com> 2017-02-13 14:05:24 +0100
committerGravatar David Sterba <dsterba@suse.com> 2017-02-17 12:03:50 +0100
commit81353d50f5274e435105391b669e05aaf62c8609 (patch)
treed730cd3645cb057c4d57bbe01a39b6d61dea2bd1 /fs/btrfs/qgroup.c
parentbtrfs: embed extent_changeset::range_changed to the structure (diff)
downloadlinux-81353d50f5274e435105391b669e05aaf62c8609.tar.gz
linux-81353d50f5274e435105391b669e05aaf62c8609.tar.bz2
linux-81353d50f5274e435105391b669e05aaf62c8609.zip
btrfs: check quota status earlier and don't do unnecessary frees
Status of quotas should be the first check in btrfs_qgroup_account_extent and we can return immediatelly, no need to do no-op ulist frees. Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/qgroup.c')
-rw-r--r--fs/btrfs/qgroup.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 627126daf25b..0d3c9a1062b0 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -1945,13 +1945,14 @@ btrfs_qgroup_account_extent(struct btrfs_trans_handle *trans,
u64 nr_old_roots = 0;
int ret = 0;
+ if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags))
+ return 0;
+
if (new_roots)
nr_new_roots = new_roots->nnodes;
if (old_roots)
nr_old_roots = old_roots->nnodes;
- if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags))
- goto out_free;
BUG_ON(!fs_info->quota_root);
trace_btrfs_qgroup_account_extent(fs_info, bytenr, num_bytes,