Re: [PATCH] mm/damon/ops-common: factor out damon_putback_folio_list()

[email protected]
Newsgroups dev.linux.lists.damon
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Removal of `struct folio *folio;` declaration causes a compilation failure in `damon_migrate_folio_list()`.
--

--- Patch [1]: [PATCH] mm/damon/ops-common: factor out damon_putback_folio_list() ---
commit b95b21fa4d0d8990d47609474f8cee2aa7d640e1
Author: Li Youhong <[email protected]>

mm/damon/ops-common: factor out damon_putback_folio_list()

This commit factors out the duplicated putback loop in
damon_migrate_folio_list() and damon_migrate_pages() into a new
damon_putback_folio_list() helper. The commit notes state this removes
the need for the local folio variable.

Link: https://lore.kernel.org/all/[email protected]/

> diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c
> index fbda70d8ea4d0..f9cfd35bee722 100644
> --- a/mm/damon/ops-common.c
> +++ b/mm/damon/ops-common.c
[ ... ]
>  static unsigned int damon_migrate_folio_list(struct list_head *folio_list,
>  						struct pglist_data *pgdat,
>  						int target_nid)
>  {
>  	unsigned int nr_migrated = 0;
> -	struct folio *folio;
>  	LIST_HEAD(ret_folios);
>  	LIST_HEAD(migrate_folios);

[Severity: Low]
The commit message notes that removing the folio variable here won't cause
a build failure. However, does damon_migrate_folio_list() still use the
folio variable in its first while-loop?

Looking at the remaining code in damon_migrate_folio_list():

	while (!list_empty(folio_list)) {
		cond_resched();

		folio = lru_to_folio(folio_list);
		list_del(&folio->lru);

		if (!folio_trylock(folio))
			goto keep;

Will this cause an undeclared identifier compilation error since the variable
was removed from the function scope but not re-declared locally inside this
loop block?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.