summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ulist.c
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2017-12-19 15:44:54 +0800
committerDavid Sterba <dsterba@suse.com>2018-03-31 01:26:51 +0200
commit4d31778aa2fa342f5f92ca4025b293a1729161d1 (patch)
treeb155b504dd78259082db954b4436be35680c650b /fs/btrfs/ulist.c
parent2e32ef87b074cb8098436634b649b4b2b523acbe (diff)
downloadtalos-obmc-linux-4d31778aa2fa342f5f92ca4025b293a1729161d1.tar.gz
talos-obmc-linux-4d31778aa2fa342f5f92ca4025b293a1729161d1.zip
btrfs: qgroup: Fix root item corruption when multiple same source snapshots are created with quota enabled
When multiple pending snapshots referring to the same source subvolume are executed, enabled quota will cause root item corruption, where root items are using old bytenr (no backref in extent tree). This can be triggered by fstests btrfs/152. The cause is when source subvolume is still dirty, extra commit (simplied transaction commit) of qgroup_account_snapshot() can skip dirty roots not recorded in current transaction, making root item of source subvolume not updated. Fix it by forcing recording source subvolume in current transaction before qgroup sub-transaction commit. Reported-by: Justin Maggard <jmaggard@netgear.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/ulist.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud