[PATCH v2 05/14] mm/hugetlb: use direct assignment instead of folio_change_private()

From: Zi Yan

Date: Mon Aug 31 2026 - 20:09:17 EST


folio_change_private() should be used along with folio_attach_private() and
folio_detach_private(), where adding and remove ->private content requires
folio refcount change. add_hugetlb_folio() simply sets folio->private to
NULL without refcount manipulation. Change it to direct assignment to avoid
semantic confusion.

It prepares for a future commit that remove PG_private.

No functional change intended.

Assisted-by: Claude:claude-opus-4-8
Assisted-by: Codex:gpt-5
To: Muchun Song <muchun.song@xxxxxxxxx>
To: Oscar Salvador <osalvador@xxxxxxx>
To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: David Hildenbrand <david@xxxxxxxxxx>
Cc: linux-mm@xxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Acked-by: Usama Arif <usama.arif@xxxxxxxxx>
Signed-off-by: Zi Yan <ziy@xxxxxxxxxx>
---
mm/hugetlb.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 7857728457952..4b6753b87162d 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1433,10 +1433,10 @@ void add_hugetlb_folio(struct hstate *h, struct folio *folio,
}

__folio_set_hugetlb(folio);
- folio_change_private(folio, NULL);
+ folio->private = NULL;
/*
- * We have to set hugetlb_vmemmap_optimized again as above
- * folio_change_private(folio, NULL) cleared it.
+ * The hugetlb flags live in folio->private and are cleared by the above
+ * assignment. Restore the hugetlb_vmemmap_optimized flag.
*/
folio_set_hugetlb_vmemmap_optimized(folio);


--
2.53.0