When we want to clear previously set target ids, For example, it works as below now: # echo 42 > target_ids # cat target_ids 42 # echo > target_ids # cat target_ids But in 'dbgfs_target_ids_write', there is no need to execute other codes, except call 'damon_set_targets' to clear previously set target ids. So there adds the 'nr_targets' judgment, if the value is 0, just call 'damon_set_targets', and then return. Signed-off-by: Xin Hao <xhao@xxxxxxxxxxxxxxxxx> --- mm/damon/dbgfs.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c index a02cf6bee8e8..1d83f4138fad 100644 --- a/mm/damon/dbgfs.c +++ b/mm/damon/dbgfs.c @@ -362,6 +362,12 @@ static ssize_t dbgfs_target_ids_write(struct file *file, goto out; } + if (!nr_targets) { + /* remove targets with previously-set primitive */ + damon_set_targets(ctx, NULL, 0); + goto free_targets_out; + } + if (id_is_pid) { for (i = 0; i < nr_targets; i++) { targets[i] = (unsigned long)find_get_pid( -- 2.31.0