projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
396a887
)
bcachefs: More general fix for transaction paths overflow
author
Kent Overstreet
<kent.overstreet@gmail.com>
Mon, 25 Oct 2021 22:30:28 +0000
(18:30 -0400)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:15 +0000
(17:09 -0400)
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: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/btree_iter.h
patch
|
blob
|
history
diff --git
a/fs/bcachefs/btree_iter.h
b/fs/bcachefs/btree_iter.h
index e58cad4b8fc6ea1962ba279d3b06515dc1794ef0..16fa0fe1c5b710328d354287824fb42e36151dbd 100644
(file)
--- a/
fs/bcachefs/btree_iter.h
+++ b/
fs/bcachefs/btree_iter.h
@@
-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;