From 7b7278bbaf2a5d2e6955d763a8a30a3ba190dc10 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 20 Apr 2021 20:21:39 -0400 Subject: [PATCH] bcachefs: Fix two btree iterator leaks Signed-off-by: Kent Overstreet Signed-off-by: Kent Overstreet --- fs/bcachefs/ec.c | 1 + fs/bcachefs/move.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c index 370f9e6916f3b..7d681a7254c4c 100644 --- a/fs/bcachefs/ec.c +++ b/fs/bcachefs/ec.c @@ -1621,6 +1621,7 @@ int bch2_stripes_write(struct bch_fs *c, unsigned flags) if (ret) break; } + bch2_trans_iter_put(&trans, iter); bch2_trans_exit(&trans); diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index 1c4ead7bd0bfc..bce10eb4eb4c6 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -761,7 +761,7 @@ static int bch2_move_btree(struct bch_fs *c, id == start_btree_id ? start_pos : POS_MIN, BTREE_ITER_PREFETCH, b) { if (kthread && kthread_should_stop()) - goto out; + break; if ((cmp_int(id, end_btree_id) ?: bkey_cmp(b->key.k.p, end_pos)) > 0) @@ -788,8 +788,10 @@ next: } ret = bch2_trans_iter_free(&trans, iter) ?: ret; + if (kthread && kthread_should_stop()) + break; } -out: + bch2_trans_exit(&trans); if (ret) -- 2.30.2