summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-04-25 02:09:25 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-04-29 13:44:31 -0400
commitab5eed9fa7e25844bee5a0fb93e828db68103de9 (patch)
tree7ca155a29c569fd4f8811ad40591a88f06a2061d
parentae742f0b04228057e4919667c7e06206c690882a (diff)
foo
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/alloc_foreground.c2
-rw-r--r--fs/bcachefs/btree_iter.c11
2 files changed, 8 insertions, 5 deletions
diff --git a/fs/bcachefs/alloc_foreground.c b/fs/bcachefs/alloc_foreground.c
index d48838045679..01963f92d1fa 100644
--- a/fs/bcachefs/alloc_foreground.c
+++ b/fs/bcachefs/alloc_foreground.c
@@ -358,6 +358,8 @@ next:
if (ob)
break;
}
+
+ bch2_set_btree_iter_dontneed(&iter);
bch2_trans_iter_exit(trans, &iter);
alloc_cursor = iter.pos.offset;
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c
index 56349265970d..d70b44ecb72d 100644
--- a/fs/bcachefs/btree_iter.c
+++ b/fs/bcachefs/btree_iter.c
@@ -1671,6 +1671,7 @@ static noinline void btree_path_overflow(struct btree_trans *trans)
{
bch2_dump_trans_paths_updates(trans);
bch_err(trans->c, "trans path overflow");
+ BUG();
}
static noinline void btree_paths_realloc(struct btree_trans *trans)
@@ -1890,14 +1891,14 @@ hole:
void bch2_set_btree_iter_dontneed(struct btree_trans *trans, struct btree_iter *iter)
{
- if (!iter->path || trans->restarted)
+ if (trans->restarted)
return;
- struct btree_path *path = btree_iter_path(trans, iter);
- path->preserve = false;
- if (path->ref == 1)
- path->should_be_locked = false;
+ set_path_dontneed(trans, iter->path);
+ set_path_dontneed(trans, iter->update_path);
+ set_path_dontneed(trans, iter->key_cache_path);
}
+
/* Btree iterators: */
int __must_check