summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-04-05 08:23:55 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:08:59 +0300
commitf72b1fd710870547f566d7d02563833eda43e67d (patch)
tree79638968be2d64eb8c5d7e5af991607809a24f45
parentecc1420944c73205225ed6fe4c1781c09759dd10 (diff)
downloadlinux-f72b1fd710870547f566d7d02563833eda43e67d.tar.xz
bcachefs: Fix a startup race
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/btree_key_cache.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/bcachefs/btree_key_cache.c b/fs/bcachefs/btree_key_cache.c
index 74d982c3402a..0af46335bd00 100644
--- a/fs/bcachefs/btree_key_cache.c
+++ b/fs/bcachefs/btree_key_cache.c
@@ -692,17 +692,16 @@ int bch2_fs_btree_key_cache_init(struct btree_key_cache *bc)
struct bch_fs *c = container_of(bc, struct bch_fs, btree_key_cache);
int ret;
- bc->shrink.seeks = 1;
- bc->shrink.count_objects = bch2_btree_key_cache_count;
- bc->shrink.scan_objects = bch2_btree_key_cache_scan;
-
- ret = register_shrinker(&bc->shrink, "%s/btree_key_cache", c->name) ?:
- rhashtable_init(&bc->table, &bch2_btree_key_cache_params);
+ ret = rhashtable_init(&bc->table, &bch2_btree_key_cache_params);
if (ret)
return ret;
bc->table_init_done = true;
- return 0;
+
+ bc->shrink.seeks = 1;
+ bc->shrink.count_objects = bch2_btree_key_cache_count;
+ bc->shrink.scan_objects = bch2_btree_key_cache_scan;
+ return register_shrinker(&bc->shrink, "%s/btree_key_cache", c->name);
}
void bch2_btree_key_cache_to_text(struct printbuf *out, struct btree_key_cache *c)