[lvc-project] [PATCH 6.1] mm/damon: get rid of overlapping areas

Fedor Pchelkin pchelkin at ispras.ru
Tue Jun 23 12:50:00 MSK 2026


On Tue, 23. Jun 12:43, Markov Gleb wrote:
> @@ -1003,19 +1003,27 @@ static ssize_t dbgfs_monitor_on_write(struct file *file,
>  {
>  	ssize_t ret;
>  	char *kbuf;
> +	char *token;
> +	char *temp_buf;
>  
>  	kbuf = user_input_str(buf, count, ppos);
>  	if (IS_ERR(kbuf))
>  		return PTR_ERR(kbuf);
>  
> -	/* Remove white space */
> -	if (sscanf(kbuf, "%s", kbuf) != 1) {
> +	/* Will use temporary to avoid problems with original */
> +	temp_buf = kbuf;
> +
> +	do {
> +		token = strsep(&temp_buf, " \t\r\n\v\f");

Что это?

Просьба заиспользовать существующую в ядре функцию для очистки
пробельных символов из конца буфера.

> +	} while (token && *token == '\0');
> +
> +	if (!token) {
>  		kfree(kbuf);
>  		return -EINVAL;
>  	}
>  
>  	mutex_lock(&damon_dbgfs_lock);
> -	if (!strncmp(kbuf, "on", count)) {
> +	if (!strcmp(token, "on")) {

Зачем?

>  		int i;
>  
>  		for (i = 0; i < dbgfs_nr_ctxs; i++) {
> @@ -1026,7 +1034,7 @@ static ssize_t dbgfs_monitor_on_write(struct file *file,
>  			}
>  		}
>  		ret = damon_start(dbgfs_ctxs, dbgfs_nr_ctxs, true);
> -	} else if (!strncmp(kbuf, "off", count)) {
> +	} else if (!strcmp(token, "off")) {

Зачем?

>  		ret = damon_stop(dbgfs_ctxs, dbgfs_nr_ctxs);
>  	} else {
>  		ret = -EINVAL;
> -- 
> 2.43.0



More information about the lvc-project mailing list