bcachefs: Don't leak lock pcpu counts memory
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 30 Aug 2022 15:40:03 +0000 (11:40 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:39 +0000 (17:09 -0400)
This fixes a small memory leak.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_key_cache.c

index 127cb6edaff5a0a2cc8479019eedc5861b803492..7349c70f844519f3e2727ade756e788369a4856e 100644 (file)
@@ -238,8 +238,6 @@ btree_key_cache_create(struct bch_fs *c,
        } else {
                if (btree_id == BTREE_ID_subvolumes)
                        six_lock_pcpu_alloc(&ck->c.lock);
-               else
-                       six_lock_pcpu_free(&ck->c.lock);
        }
 
        ck->c.level             = 0;
@@ -688,6 +686,7 @@ static unsigned long bch2_btree_key_cache_scan(struct shrinker *shrink,
                        break;
 
                list_del(&ck->list);
+               six_lock_pcpu_free(&ck->c.lock);
                kmem_cache_free(bch2_key_cache, ck);
                atomic_long_dec(&bc->nr_freed);
                scanned++;