Commit c97eeb8f authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Andrew Morton

mm: convert page_mapcount() to use folio_entire_mapcount()

Remove a use of head_compound_mapcount().

Link: https://lkml.kernel.org/r/20230111142915.1001531-15-willy@infradead.orgSigned-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 46f27228
...@@ -853,22 +853,26 @@ static inline void page_mapcount_reset(struct page *page) ...@@ -853,22 +853,26 @@ static inline void page_mapcount_reset(struct page *page)
atomic_set(&(page)->_mapcount, -1); atomic_set(&(page)->_mapcount, -1);
} }
/* /**
* Mapcount of 0-order page; when compound sub-page, includes * page_mapcount() - Number of times this precise page is mapped.
* compound_mapcount of compound_head of page. * @page: The page.
*
* The number of times this page is mapped. If this page is part of
* a large folio, it includes the number of times this page is mapped
* as part of that folio.
* *
* Result is undefined for pages which cannot be mapped into userspace. * The result is undefined for pages which cannot be mapped into userspace.
* For example SLAB or special types of pages. See function page_has_type(). * For example SLAB or special types of pages. See function page_has_type().
* They use this place in struct page differently. * They use this field in struct page differently.
*/ */
static inline int page_mapcount(struct page *page) static inline int page_mapcount(struct page *page)
{ {
int mapcount = atomic_read(&page->_mapcount) + 1; int mapcount = atomic_read(&page->_mapcount) + 1;
if (likely(!PageCompound(page))) if (unlikely(PageCompound(page)))
return mapcount; mapcount += folio_entire_mapcount(page_folio(page));
page = compound_head(page);
return head_compound_mapcount(page) + mapcount; return mapcount;
} }
int folio_total_mapcount(struct folio *folio); int folio_total_mapcount(struct folio *folio);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment