diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-12-19 19:29:25 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-12-19 19:29:25 -0500 |
commit | fe37b584d37096f881d2992d37bf313aa2ace60d (patch) | |
tree | a16fad9aac9b600a0c4a3578bbc99eed607a09e6 /linux | |
parent | 3233d8a0c460fc9627963658ac59edc5b6186e72 (diff) |
fix shrinker_free()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'linux')
-rw-r--r-- | linux/shrinker.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/linux/shrinker.c b/linux/shrinker.c index 88069769..ca34ebc7 100644 --- a/linux/shrinker.c +++ b/linux/shrinker.c @@ -13,6 +13,16 @@ static LIST_HEAD(shrinker_list); static DEFINE_MUTEX(shrinker_lock); +void shrinker_free(struct shrinker *s) +{ + if (s->list.next) { + mutex_lock(&shrinker_lock); + list_del(&s->list); + mutex_unlock(&shrinker_lock); + } + free(s); +} + struct shrinker *shrinker_alloc(unsigned int flags, const char *fmt, ...) { return calloc(sizeof(struct shrinker), 1); @@ -26,13 +36,6 @@ int shrinker_register(struct shrinker *shrinker) return 0; } -void unregister_shrinker(struct shrinker *shrinker) -{ - mutex_lock(&shrinker_lock); - list_del(&shrinker->list); - mutex_unlock(&shrinker_lock); -} - static void run_shrinkers_allocation_failed(gfp_t gfp_mask) { struct shrinker *shrinker; |