> On Dec 17, 2021, at 3:30 AM, David Hildenbrand <david@xxxxxxxxxx> wrote: > > Let's return early for hugetlb, which really only relies on the compound > mapcount so far and does not support PageDoubleMap() yet. Use the chance > to cleanup the file-THP case to make it easier to grasp. While at it, use > head_compound_mapcount(). > > This is a preparation for further changes. It would be useful to add “no functional change intended” or something. > > Reviewed-by: Peter Xu <peterx@xxxxxxxxxx> > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > --- > mm/util.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/mm/util.c b/mm/util.c > index 741ba32a43ac..3239e75c148d 100644 > --- a/mm/util.c > +++ b/mm/util.c > @@ -732,15 +732,18 @@ int __page_mapcount(struct page *page) > { > int ret; > > - ret = atomic_read(&page->_mapcount) + 1; > + if (PageHuge(page)) > + return compound_mapcount(page); Before you return, perhaps you can add an assertion like: VM_BUG_ON(PageDoubleMap(page)); This would be make the code clearer and would ease debugging in the future (if support for double-map is expanded).