Re: [PATCH] mm/damon/ops-common: factor out damon_putback_folio_list()
SJ Park <[email protected]>
| Newsgroups | dev.linux.lists.damon,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
Hello Li, 'get_maintainer.pl --nogit --nogit-fallback' suggests adding below recipients. I added them. Please consier using get_maintainer.pl from the next time. - [email protected] - [email protected] On Mon, 17 Aug 2026 14:34:58 +0800 [email protected] wrote: > From: Li Youhong <[email protected]> > > The putback loop is duplicated in damon_migrate_folio_list() and on the > invalid-nid path of damon_migrate_pages(). Factor it into a small helper > for readability. No functional change. Thank you for this patch. > > Signed-off-by: Li Youhong <[email protected]> > > --- > Note: > As previously pointed out by the AI regarding whether removing the local > variable struct folio *folio in the damon_migrate_folio_list()function > would introduce build-time issues: no build failure will actually occur. > This is because struct folio *folio is only used inside the while-loop. > link: https://lore.kernel.org/all/[email protected]/ But, a build on my setup actually fails like below: $ make O=../linux.out mm/damon/ [...] CC mm/damon/ops-common.o mm/damon/ops-common.c: In function ‘damon_migrate_folio_list’: mm/damon/ops-common.c:357:17: error: ‘folio’ undeclared (first use in this function) 357 | folio = lru_to_folio(folio_list); | ^~~~~ > > --- > mm/damon/ops-common.c | 31 +++++++++++++++---------------- > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c > index 0bcad6b1e5b9..5c0c941b7f75 100644 > --- a/mm/damon/ops-common.c > +++ b/mm/damon/ops-common.c > @@ -329,12 +329,24 @@ static unsigned int __damon_migrate_folio_list( > return nr_succeeded; > } > > +static void damon_putback_folio_list(struct list_head *folio_list) > +{ > + struct folio *folio; > + > + while (!list_empty(folio_list)) { > + folio = lru_to_folio(folio_list); > + list_del(&folio->lru); > + node_stat_sub_folio(folio, NR_ISOLATED_ANON + > + folio_is_file_lru(folio)); > + folio_putback_lru(folio); > + } > +} > + > 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; Above declaration removal is causing the build failure. Let's keep the declaration. Thanks, SJ [...]