summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_cache.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-07-09 15:16:50 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-07-09 15:25:40 -0400
commit5d507f795b0b679a67e972a48cbd0854c4ad0f02 (patch)
treebf30f9dd1badd504025e836d696d4d2d939108c3 /libbcachefs/btree_cache.c
parentc99a444c5cc242a89845be83236aacd7db628ef5 (diff)
Update bcachefs sources to da7d42a9a2 bcachefs: Add new assertions for shutdown path
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/btree_cache.c')
-rw-r--r--libbcachefs/btree_cache.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/libbcachefs/btree_cache.c b/libbcachefs/btree_cache.c
index 191d6c1b..13c88d95 100644
--- a/libbcachefs/btree_cache.c
+++ b/libbcachefs/btree_cache.c
@@ -505,21 +505,17 @@ int bch2_fs_btree_cache_init(struct bch_fs *c)
unsigned i;
int ret = 0;
- pr_verbose_init(c->opts, "");
-
ret = rhashtable_init(&bc->table, &bch_btree_cache_params);
if (ret)
- goto out;
+ goto err;
bc->table_init_done = true;
bch2_recalc_btree_reserve(c);
for (i = 0; i < bc->reserve; i++)
- if (!__bch2_btree_node_mem_alloc(c)) {
- ret = -BCH_ERR_ENOMEM_fs_btree_cache_init;
- goto out;
- }
+ if (!__bch2_btree_node_mem_alloc(c))
+ goto err;
list_splice_init(&bc->live, &bc->freeable);
@@ -530,9 +526,12 @@ int bch2_fs_btree_cache_init(struct bch_fs *c)
bc->shrink.to_text = bch2_btree_cache_shrinker_to_text;
bc->shrink.seeks = 4;
ret = register_shrinker(&bc->shrink, "%s/btree_cache", c->name);
-out:
- pr_verbose_init(c->opts, "ret %i", ret);
- return ret;
+ if (ret)
+ goto err;
+
+ return 0;
+err:
+ return -BCH_ERR_ENOMEM_fs_btree_cache_init;
}
void bch2_fs_btree_cache_init_early(struct btree_cache *bc)
@@ -826,7 +825,7 @@ static noinline void btree_bad_header(struct bch_fs *c, struct btree *b)
{
struct printbuf buf = PRINTBUF;
- if (!test_bit(BCH_FS_INITIAL_GC_DONE, &c->flags))
+ if (c->curr_recovery_pass <= BCH_RECOVERY_PASS_check_allocations)
return;
prt_printf(&buf,