From 3bce13837395f1af2fd585ef6dd4b54d80c2d1fb Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 15 Nov 2022 23:17:55 -0500 Subject: bcachefs: Fix for_each_btree_key2() Previously, when we exited from the loop body with a break statement _ret wouldn't have been assigned to yet, and we could spuriously return a transaction restart error. Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_iter.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'fs/bcachefs/btree_iter.h') diff --git a/fs/bcachefs/btree_iter.h b/fs/bcachefs/btree_iter.h index 635cf97f5692..1c60122c5ea5 100644 --- a/fs/bcachefs/btree_iter.h +++ b/fs/bcachefs/btree_iter.h @@ -490,11 +490,11 @@ __bch2_btree_iter_peek_and_restart(struct btree_trans *trans, \ while (1) { \ u32 _restart_count = bch2_trans_begin(_trans); \ + \ + _ret = 0; \ (_k) = bch2_btree_iter_peek_type(&(_iter), (_flags)); \ - if (!(_k).k) { \ - _ret = 0; \ + if (!(_k).k) \ break; \ - } \ \ _ret = bkey_err(_k) ?: (_do); \ if (bch2_err_matches(_ret, BCH_ERR_transaction_restart))\ -- cgit v1.2.3