Skip to content

Commit

Permalink
mm: convert destroy_compound_page() to destroy_large_folio()
Browse files Browse the repository at this point in the history
All callers now have a folio, so push the folio->page conversion
down to this function.

Link: https://lkml.kernel.org/r/20220617175020.717127-20-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  • Loading branch information
Matthew Wilcox (Oracle) authored and akpm00 committed Jun 18, 2022
1 parent 19211da commit d3b90b7
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 6 deletions.
8 changes: 5 additions & 3 deletions include/linux/mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -923,10 +923,12 @@ static inline void set_compound_page_dtor(struct page *page,
page[1].compound_dtor = compound_dtor;
}

static inline void destroy_compound_page(struct page *page)
static inline void destroy_large_folio(struct folio *folio)
{
VM_BUG_ON_PAGE(page[1].compound_dtor >= NR_COMPOUND_DTORS, page);
compound_page_dtors[page[1].compound_dtor](page);
enum compound_dtor_id dtor = folio_page(folio, 1)->compound_dtor;

VM_BUG_ON_FOLIO(dtor >= NR_COMPOUND_DTORS, folio);
compound_page_dtors[dtor](&folio->page);
}

static inline int head_compound_pincount(struct page *head)
Expand Down
2 changes: 1 addition & 1 deletion mm/swap.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ static void __folio_put_large(struct folio *folio)
*/
if (!folio_test_hugetlb(folio))
__page_cache_release(folio);
destroy_compound_page(&folio->page);
destroy_large_folio(folio);
}

void __folio_put(struct folio *folio)
Expand Down
4 changes: 2 additions & 2 deletions mm/vmscan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1985,7 +1985,7 @@ static unsigned int shrink_page_list(struct list_head *page_list,
* appear not as the counts should be low
*/
if (unlikely(folio_test_large(folio)))
destroy_compound_page(&folio->page);
destroy_large_folio(folio);
else
list_add(&folio->lru, &free_pages);
continue;
Expand Down Expand Up @@ -2354,7 +2354,7 @@ static unsigned int move_pages_to_lru(struct lruvec *lruvec,

if (unlikely(folio_test_large(folio))) {
spin_unlock_irq(&lruvec->lru_lock);
destroy_compound_page(&folio->page);
destroy_large_folio(folio);
spin_lock_irq(&lruvec->lru_lock);
} else
list_add(&folio->lru, &folios_to_free);
Expand Down

0 comments on commit d3b90b7

Please sign in to comment.