diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-25 02:09:25 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-29 13:44:31 -0400 |
commit | ab5eed9fa7e25844bee5a0fb93e828db68103de9 (patch) | |
tree | 7ca155a29c569fd4f8811ad40591a88f06a2061d | |
parent | ae742f0b04228057e4919667c7e06206c690882a (diff) |
foo
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/alloc_foreground.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/btree_iter.c | 11 |
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 |