From: Kent Overstreet Date: Thu, 7 Oct 2021 22:08:01 +0000 (-0400) Subject: bcachefs: Fix bch2_move_btree() X-Git-Tag: io_uring-6.7-2023-11-10~119^2~1365 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=4b09ef12e76c3c0e37ecce6c1e33243d65026398;p=linux-block.git bcachefs: Fix bch2_move_btree() bch2_trans_begin() is now required for transaction restarts. Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index 2e7d8e2fe331..5e61cd431ef9 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -883,9 +883,11 @@ static int bch2_move_btree(struct bch_fs *c, id++) { stats->btree_id = id; - for_each_btree_node(&trans, iter, id, - id == start_btree_id ? start_pos : POS_MIN, - BTREE_ITER_PREFETCH, b) { + bch2_trans_node_iter_init(&trans, &iter, id, POS_MIN, 0, 0, + BTREE_ITER_PREFETCH); + + while (bch2_trans_begin(&trans), + (b = bch2_btree_iter_peek_node(&iter))) { if (kthread && kthread_should_stop()) break; @@ -911,6 +913,7 @@ static int bch2_move_btree(struct bch_fs *c, b->data->keys.seq, 0) ?: ret; next: bch2_trans_cond_resched(&trans); + bch2_btree_iter_next_node(&iter); } bch2_trans_iter_exit(&trans, &iter);