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;
|
void *private_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void shrinker_free(struct shrinker *s)
|
void shrinker_free(struct shrinker *);
|
||||||
{
|
|
||||||
free(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct shrinker *shrinker_alloc(unsigned int, const char *, ...);
|
struct shrinker *shrinker_alloc(unsigned int, const char *, ...);
|
||||||
|
|
||||||
int shrinker_register(struct shrinker *);
|
int shrinker_register(struct shrinker *);
|
||||||
void shrinker_unregister(struct shrinker *);
|
|
||||||
|
|
||||||
void run_shrinkers(gfp_t gfp_mask, bool);
|
void run_shrinkers(gfp_t gfp_mask, bool);
|
||||||
|
|
||||||
|
@ -13,6 +13,16 @@
|
|||||||
static LIST_HEAD(shrinker_list);
|
static LIST_HEAD(shrinker_list);
|
||||||
static DEFINE_MUTEX(shrinker_lock);
|
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, ...)
|
struct shrinker *shrinker_alloc(unsigned int flags, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
return calloc(sizeof(struct shrinker), 1);
|
return calloc(sizeof(struct shrinker), 1);
|
||||||
@ -26,13 +36,6 @@ int shrinker_register(struct shrinker *shrinker)
|
|||||||
return 0;
|
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)
|
static void run_shrinkers_allocation_failed(gfp_t gfp_mask)
|
||||||
{
|
{
|
||||||
struct shrinker *shrinker;
|
struct shrinker *shrinker;
|
||||||
|
Loading…
Reference in New Issue
Block a user