diff options
-rw-r--r-- | fs/btrfs/qgroup.c | 8 |
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; |