From: Ackerley Tng Now that all filesystem and memory management subpool layout inspections across `fs/hugetlbfs/inode.c` and `mm/` leverage the exported, harmonized APIs, transition `struct hugepage_subpool` out of the public header `include/linux/hugetlb.h` and encapsulate it privately inside `mm/hugetlb_subpool.c`. Replace the header definition with a forward declaration, completely protecting the underlying subpool allocation counters, reservations, and spinlock boundaries. Signed-off-by: Ackerley Tng --- include/linux/hugetlb.h | 13 ++----------- mm/hugetlb_subpool.c | 12 ++++++++++++ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index f36be371c6e88..074a45903973e 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -18,6 +18,7 @@ struct mmu_gather; struct node; +struct hstate; void free_huge_folio(struct folio *folio); @@ -34,17 +35,7 @@ void free_huge_folio(struct folio *folio); */ #define __NR_USED_SUBPAGE 3 -struct hugepage_subpool { - spinlock_t lock; - long count; - long max_hpages; /* Maximum huge pages or -1 if no maximum. */ - long used_hpages; /* Used page count, includes both */ - /* allocated and reserved pages. */ - struct hstate *hstate; - long min_hpages; /* Minimum huge pages or -1 if no minimum. */ - long rsv_hpages; /* Pages reserved against global pool to */ - /* satisfy minimum size. */ -}; +struct hugepage_subpool; struct resv_map { struct kref refs; diff --git a/mm/hugetlb_subpool.c b/mm/hugetlb_subpool.c index 99e7975911079..eb5472bdf2192 100644 --- a/mm/hugetlb_subpool.c +++ b/mm/hugetlb_subpool.c @@ -14,6 +14,18 @@ #include #include "hugetlb_subpool.h" +struct hugepage_subpool { + spinlock_t lock; + long count; + long max_hpages; /* Maximum huge pages or -1 if no maximum. */ + long used_hpages; /* Used page count, includes both */ + /* allocated and reserved pages. */ + struct hstate *hstate; + long min_hpages; /* Minimum huge pages or -1 if no minimum. */ + long rsv_hpages; /* Pages reserved against global pool to */ + /* satisfy minimum size. */ +}; + static inline bool subpool_is_free(struct hugepage_subpool *spool) { if (spool->count) -- 2.55.0.229.g6434b31f56-goog