summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-04-04 00:11:15 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:08:20 +0300
commit2a039f1ee4077050c57c51f0463335d262740430 (patch)
treeaba725680e2fa03787abab3e5c1ffbd77c28f153
parenta1d58243f943f5933e65e18e504333ac9eccb679 (diff)
downloadlinux-2a039f1ee4077050c57c51f0463335d262740430.tar.xz
bcachefs: free trans->mem on commit
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/btree_update_leaf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c
index 6fa9fa5768aa..8e686dc42f9d 100644
--- a/fs/bcachefs/btree_update_leaf.c
+++ b/fs/bcachefs/btree_update_leaf.c
@@ -861,12 +861,15 @@ out_noupdates:
BUG_ON(!(trans->flags & BTREE_INSERT_ATOMIC) && ret == -EINTR);
- bch2_trans_unlink_iters(trans, trans->iters_unlink_on_commit);
if (!ret) {
- bch2_trans_unlink_iters(trans, ~trans->iters_touched);
+ bch2_trans_unlink_iters(trans, ~trans->iters_touched|
+ trans->iters_unlink_on_commit);
trans->iters_touched = 0;
+ } else {
+ bch2_trans_unlink_iters(trans, trans->iters_unlink_on_commit);
}
- trans->nr_updates = 0;
+ trans->nr_updates = 0;
+ trans->mem_top = 0;
return ret;
err: