diff options
Diffstat (limited to 'mm/damon/core.c')
| -rw-r--r-- | mm/damon/core.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/damon/core.c b/mm/damon/core.c index 93848b4c6944..109b050c795a 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -452,6 +452,9 @@ void damon_destroy_scheme(struct damos *s)  	damos_for_each_filter_safe(f, next, s)  		damos_destroy_filter(f); +	damos_for_each_ops_filter_safe(f, next, s) +		damos_destroy_filter(f); +  	kfree(s->migrate_dests.node_id_arr);  	kfree(s->migrate_dests.weight_arr);  	damon_del_scheme(s); @@ -832,7 +835,7 @@ int damos_commit_quota_goals(struct damos_quota *dst, struct damos_quota *src)  				src_goal->metric, src_goal->target_value);  		if (!new_goal)  			return -ENOMEM; -		damos_commit_quota_goal_union(new_goal, src_goal); +		damos_commit_quota_goal(new_goal, src_goal);  		damos_add_quota_goal(dst, new_goal);  	}  	return 0; @@ -1450,7 +1453,7 @@ int damon_call(struct damon_ctx *ctx, struct damon_call_control *control)  	INIT_LIST_HEAD(&control->list);  	mutex_lock(&ctx->call_controls_lock); -	list_add_tail(&ctx->call_controls, &control->list); +	list_add_tail(&control->list, &ctx->call_controls);  	mutex_unlock(&ctx->call_controls_lock);  	if (!damon_is_running(ctx))  		return -EINVAL;  | 
