OSDN Git Service

mm/damon: convert damon_pa_mark_accessed_or_deactivate() to use folios
authorVishal Moola (Oracle) <vishal.moola@gmail.com>
Wed, 21 Dec 2022 18:08:47 +0000 (10:08 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 19 Jan 2023 01:12:47 +0000 (17:12 -0800)
This change replaces 2 calls to compound_head() from put_page() and 1 call
from mark_page_accessed() with one from page_folio().  This is in
preparation for the conversion of deactivate_page() to folio_deactivate().

Link: https://lkml.kernel.org/r/20221221180848.20774-4-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/paddr.c

index ebd1905..884c8bf 100644 (file)
@@ -283,21 +283,23 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate(
 
        for (addr = r->ar.start; addr < r->ar.end; addr += PAGE_SIZE) {
                struct page *page = damon_get_page(PHYS_PFN(addr));
+               struct folio *folio;
 
                if (!page)
                        continue;
+               folio = page_folio(page);
 
-               if (damos_pa_filter_out(s, page)) {
-                       put_page(page);
+               if (damos_pa_filter_out(s, &folio->page)) {
+                       folio_put(folio);
                        continue;
                }
 
                if (mark_accessed)
-                       mark_page_accessed(page);
+                       folio_mark_accessed(folio);
                else
-                       deactivate_page(page);
-               put_page(page);
-               applied++;
+                       deactivate_page(&folio->page);
+               folio_put(folio);
+               applied += folio_nr_pages(folio);
        }
        return applied * PAGE_SIZE;
 }