]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: remove pointless and double ulist frees in error paths of qgroup tests
authorFilipe Manana <fdmanana@suse.com>
Tue, 1 Nov 2022 16:15:40 +0000 (16:15 +0000)
committerDavid Sterba <dsterba@suse.com>
Wed, 2 Nov 2022 16:44:30 +0000 (17:44 +0100)
commit8fda7b3578e1d15d8d06f0e541308cae8503ed08
tree24a5640d555176e9bd17fc73eff5fd24e6a75ac9
parent7e94333f2238e3e49829f304e0381c35061b1cbf
btrfs: remove pointless and double ulist frees in error paths of qgroup tests

Several places in the qgroup self tests follow the pattern of freeing the
ulist pointer they passed to btrfs_find_all_roots() if the call to that
function returned an error. That is pointless because that function always
frees the ulist in case it returns an error.

Also In some places like at test_multiple_refs(), after a call to
btrfs_qgroup_account_extent() we also leave "old_roots" and "new_roots"
pointing to ulists that were freed, because btrfs_qgroup_account_extent()
has freed those ulists, and if after that the next call to
btrfs_find_all_roots() fails, we call ulist_free() on the "old_roots"
ulist again, resulting in a double free.

So remove those calls to reduce the code size and avoid double ulist
free in case of an error.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/tests/qgroup-tests.c