Skip to content

Commit 6d42dba

Browse files
author
Matthew Wilcox (Oracle)
committed
mm/damon: Convert damon_pa_mkold() to use a folio
Ensure that we're passing the entire folio to rmap_walk(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
1 parent 4eecb8b commit 6d42dba

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

mm/damon/paddr.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ static bool __damon_pa_mkold(struct page *page, struct vm_area_struct *vma,
3333

3434
static void damon_pa_mkold(unsigned long paddr)
3535
{
36+
struct folio *folio;
3637
struct page *page = damon_get_page(PHYS_PFN(paddr));
3738
struct rmap_walk_control rwc = {
3839
.rmap_one = __damon_pa_mkold,
@@ -42,23 +43,24 @@ static void damon_pa_mkold(unsigned long paddr)
4243

4344
if (!page)
4445
return;
46+
folio = page_folio(page);
4547

46-
if (!page_mapped(page) || !page_rmapping(page)) {
47-
set_page_idle(page);
48+
if (!folio_mapped(folio) || !folio_raw_mapping(folio)) {
49+
folio_set_idle(folio);
4850
goto out;
4951
}
5052

51-
need_lock = !PageAnon(page) || PageKsm(page);
52-
if (need_lock && !trylock_page(page))
53+
need_lock = !folio_test_anon(folio) || folio_test_ksm(folio);
54+
if (need_lock && !folio_trylock(folio))
5355
goto out;
5456

55-
rmap_walk(page, &rwc);
57+
rmap_walk(&folio->page, &rwc);
5658

5759
if (need_lock)
58-
unlock_page(page);
60+
folio_unlock(folio);
5961

6062
out:
61-
put_page(page);
63+
folio_put(folio);
6264
}
6365

6466
static void __damon_pa_prepare_access_check(struct damon_ctx *ctx,

0 commit comments

Comments
 (0)