mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-23 00:00:02 +03:00
fix shrinker_free()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
3233d8a0c4
commit
fe37b584d3
@ -25,15 +25,10 @@ struct shrinker {
|
||||
void *private_data;
|
||||
};
|
||||
|
||||
static inline void shrinker_free(struct shrinker *s)
|
||||
{
|
||||
free(s);
|
||||
}
|
||||
|
||||
void shrinker_free(struct shrinker *);
|
||||
struct shrinker *shrinker_alloc(unsigned int, const char *, ...);
|
||||
|
||||
int shrinker_register(struct shrinker *);
|
||||
void shrinker_unregister(struct shrinker *);
|
||||
|
||||
void run_shrinkers(gfp_t gfp_mask, bool);
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user