Commit d1211725 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: More general fix for transaction paths overflow

for_each_btree_key() now calls bch2_trans_begin() as needed; that means,
we can also call it when we're in danger of overflowing transaction
paths.
Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
parent 396a887d
......@@ -329,8 +329,9 @@ __bch2_btree_iter_peek_and_restart(struct btree_trans *trans,
{
struct bkey_s_c k;
while (k = __bch2_btree_iter_peek(iter, flags),
bkey_err(k) == -EINTR)
while ((hweight64(trans->paths_allocated) > BTREE_ITER_MAX / 2) ||
(k = __bch2_btree_iter_peek(iter, flags),
bkey_err(k) == -EINTR))
bch2_trans_begin(trans);
return k;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment