diff options
-rw-r--r-- | fs/bcachefs/btree_update_leaf.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 6f10a5ee954e..ce1fc29da90c 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -860,12 +860,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: |