Adjust documentation to be more clear.
Showing the changes to include (1 of 2 files). Show all
Unified · Split
| @@ -776,21 +776,26 @@ static inline int is_vmalloc_or_module_addr(const void *x) · 775 unmodified lines | |||
| 776 | } | 776 | } |
| 777 | #endif | 777 | #endif |
| 778 | 778 | ||
| 779 | static inline int head_compound_mapcount(struct page *head) | 779 | /* |
| 780 | * How many times the entire folio is mapped as a single unit (eg by a | ||
| 781 | * PMD or PUD entry). This is probably not what you want, except for | ||
| 782 | * debugging purposes; look at folio_mapcount() or page_mapcount() | ||
| 783 | * instead. | ||
| 784 | */ | ||
| 785 | static inline int folio_entire_mapcount(struct folio *folio) | ||
| 780 | { | 786 | { |
| 781 | return atomic_read(compound_mapcount_ptr(head)) + 1; | 787 | VM_BUG_ON_FOLIO(!folio_test_large(folio), folio); |
| 788 | return atomic_read(folio_mapcount_ptr(folio)) + 1; | ||
| 782 | } | 789 | } |
| 783 | 790 | ||
| 784 | /* | 791 | /* |
| 785 | * Mapcount of compound page as a whole, does not include mapped sub-pages. | 792 | * Mapcount of compound page as a whole, does not include mapped sub-pages. |
| 786 | * | 793 | * |
| 787 | * Must be called only for compound pages or any their tail sub-pages. | 794 | * Must be called only for compound pages. |
| 788 | */ | 795 | */ |
| 789 | static inline int compound_mapcount(struct page *page) | 796 | static inline int compound_mapcount(struct page *page) |
| 790 | { | 797 | { |
| 791 | VM_BUG_ON_PAGE(!PageCompound(page), page); | 798 | return folio_entire_mapcount(page_folio(page)); |
| 792 | page = compound_head(page); | ||
| 793 | return head_compound_mapcount(page); | ||
| 794 | } | 799 | } |
| 795 | 800 | ||
| 796 | /* | 801 | /* |