bcachefs: unregister_shrinker() now safe on not-registered shrinker
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 27 Jun 2023 03:31:49 +0000 (23:31 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:10:05 +0000 (17:10 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_cache.c
fs/bcachefs/btree_key_cache.c

index 435e688889187acc67ac3eb1466e81d41674ba82..8b27b7e98f7d9343df0e28ed6d3d372aff51d532 100644 (file)
@@ -398,8 +398,7 @@ void bch2_fs_btree_cache_exit(struct bch_fs *c)
        struct btree *b;
        unsigned i, flags;
 
-       if (bc->shrink.list.next)
-               unregister_shrinker(&bc->shrink);
+       unregister_shrinker(&bc->shrink);
 
        /* vfree() can allocate memory: */
        flags = memalloc_nofs_save();
index 37beb75e25715a41c12e4b19942b3b0005e4240c..5f00688d46f1d2c850b48acf65686b642ffe03c2 100644 (file)
@@ -955,8 +955,7 @@ void bch2_fs_btree_key_cache_exit(struct btree_key_cache *bc)
        int cpu;
 #endif
 
-       if (bc->shrink.list.next)
-               unregister_shrinker(&bc->shrink);
+       unregister_shrinker(&bc->shrink);
 
        mutex_lock(&bc->lock);