btrfs: free qgroup pertrans reserve on transaction abort
authorBoris Burkov <boris@bur.io>
Fri, 1 Dec 2023 21:00:11 +0000 (13:00 -0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 6 Dec 2023 21:32:49 +0000 (22:32 +0100)
commitb321a52cce062ec7ed385333a33905d22159ce36
tree86ae2827e657bf7c8d0b9d61cf96059341d2a767
parent9e65bfca24cf1d77e4a5c7a170db5867377b3fe7
btrfs: free qgroup pertrans reserve on transaction abort

If we abort a transaction, we never run the code that frees the pertrans
qgroup reservation. This results in warnings on unmount as that
reservation has been leaked. The leak isn't a huge issue since the fs is
read-only, but it's better to clean it up when we know we can/should. Do
it during the cleanup_transaction step of aborting.

CC: stable@vger.kernel.org # 5.15+
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/disk-io.c
fs/btrfs/qgroup.c
fs/btrfs/transaction.c
fs/btrfs/transaction.h