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

mm: convert page_mapcount() to use folio_entire_mapcount()

parent 46f27228
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -853,22 +853,26 @@ static inline void page_mapcount_reset(struct page *page)
	atomic_set(&(page)->_mapcount, -1);
}

/*
 * Mapcount of 0-order page; when compound sub-page, includes
 * compound_mapcount of compound_head of page.
/**
 * page_mapcount() - Number of times this precise page is mapped.
 * @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().
 * They use this place in struct page differently.
 * They use this field in struct page differently.
 */
static inline int page_mapcount(struct page *page)
{
	int mapcount = atomic_read(&page->_mapcount) + 1;

	if (likely(!PageCompound(page)))
	if (unlikely(PageCompound(page)))
		mapcount += folio_entire_mapcount(page_folio(page));

	return mapcount;
	page = compound_head(page);
	return head_compound_mapcount(page) + mapcount;
}

int folio_total_mapcount(struct folio *folio);