summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/qgroup.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 2f708f2c4e67..3e6ffbbd8b0a 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -3830,7 +3830,13 @@ int btrfs_qgroup_add_swapped_blocks(struct btrfs_trans_handle *trans,
3830 subvol_slot); 3830 subvol_slot);
3831 block->last_snapshot = last_snapshot; 3831 block->last_snapshot = last_snapshot;
3832 block->level = level; 3832 block->level = level;
3833 if (bg->flags & BTRFS_BLOCK_GROUP_DATA) 3833
3834 /*
3835 * If we have bg == NULL, we're called from btrfs_recover_relocation(),
3836 * no one else can modify tree blocks thus we qgroup will not change
3837 * no matter the value of trace_leaf.
3838 */
3839 if (bg && bg->flags & BTRFS_BLOCK_GROUP_DATA)
3834 block->trace_leaf = true; 3840 block->trace_leaf = true;
3835 else 3841 else
3836 block->trace_leaf = false; 3842 block->trace_leaf = false;