bcachefs: bch2_btree_iter_peek_node_and_restart()
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 6 Mar 2023 09:01:22 +0000 (04:01 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:56 +0000 (17:09 -0400)
Minor refactoring for the Rust interface.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_iter.h

index e6dcca59e31ae73349c8d3adc7eb43c421ba5f4c..a1be6c81c3be20bf0e281374e86db109492cbcad 100644 (file)
@@ -1723,6 +1723,17 @@ err:
        goto out;
 }
 
+struct btree *bch2_btree_iter_peek_node_and_restart(struct btree_iter *iter)
+{
+       struct btree *b;
+
+       while (b = bch2_btree_iter_peek_node(iter),
+              bch2_err_matches(PTR_ERR_OR_ZERO(b), BCH_ERR_transaction_restart))
+               bch2_trans_begin(iter->trans);
+
+       return b;
+}
+
 struct btree *bch2_btree_iter_next_node(struct btree_iter *iter)
 {
        struct btree_trans *trans = iter->trans;
index 8e1f754e641b94f211c88e76e14a1eaadde1c0be..c3682332e653a818835d55a91453f65c0644305d 100644 (file)
@@ -294,6 +294,7 @@ int __must_check __bch2_btree_iter_traverse(struct btree_iter *iter);
 int __must_check bch2_btree_iter_traverse(struct btree_iter *);
 
 struct btree *bch2_btree_iter_peek_node(struct btree_iter *);
+struct btree *bch2_btree_iter_peek_node_and_restart(struct btree_iter *);
 struct btree *bch2_btree_iter_next_node(struct btree_iter *);
 
 struct bkey_s_c bch2_btree_iter_peek_upto(struct btree_iter *, struct bpos);
@@ -520,18 +521,6 @@ static inline struct bkey_i *bch2_bkey_get_mut(struct btree_trans *trans,
 
 u32 bch2_trans_begin(struct btree_trans *);
 
-static inline struct btree *
-__btree_iter_peek_node_and_restart(struct btree_trans *trans, struct btree_iter *iter)
-{
-       struct btree *b;
-
-       while (b = bch2_btree_iter_peek_node(iter),
-              bch2_err_matches(PTR_ERR_OR_ZERO(b), BCH_ERR_transaction_restart))
-               bch2_trans_begin(trans);
-
-       return b;
-}
-
 /*
  * XXX
  * this does not handle transaction restarts from bch2_btree_iter_next_node()
@@ -541,7 +530,7 @@ __btree_iter_peek_node_and_restart(struct btree_trans *trans, struct btree_iter
                              _locks_want, _depth, _flags, _b, _ret)    \
        for (bch2_trans_node_iter_init((_trans), &(_iter), (_btree_id), \
                                _start, _locks_want, _depth, _flags);   \
-            (_b) = __btree_iter_peek_node_and_restart((_trans), &(_iter)),\
+            (_b) = bch2_btree_iter_peek_node_and_restart(&(_iter)),    \
             !((_ret) = PTR_ERR_OR_ZERO(_b)) && (_b);                   \
             (_b) = bch2_btree_iter_next_node(&(_iter)))