]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
mm/page_alloc: Move set_page_refcounted() to callers of post_alloc_hook()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 14 Jun 2022 19:56:10 +0000 (15:56 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 3 Jan 2023 14:00:32 +0000 (09:00 -0500)
In preparation for allocating frozen pages, stop initialising
the page refcount in post_alloc_hook().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
mm/compaction.c
mm/page_alloc.c

index ca1603524bbe002419a8521a8cdf8572a129b1dd..26614e36dbefb4665ee51dd255b171f67f2463e1 100644 (file)
@@ -95,6 +95,7 @@ static void split_map_pages(struct list_head *list)
                nr_pages = 1 << order;
 
                post_alloc_hook(page, order, __GFP_MOVABLE);
+               set_page_refcounted(page);
                if (order)
                        split_page(page, order);
 
index b278318f6a790693770ad4a42b7d9a0bd8ca0c0f..8566391db0f4430eef48e7b81e6d5818d7c3b50e 100644 (file)
@@ -2467,7 +2467,6 @@ inline void post_alloc_hook(struct page *page, unsigned int order,
        int i;
 
        set_page_private(page, 0);
-       set_page_refcounted(page);
 
        arch_alloc_page(page, order);
        debug_pagealloc_map_pages(page, 1 << order);
@@ -2538,6 +2537,7 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags
                set_page_pfmemalloc(page);
        else
                clear_page_pfmemalloc(page);
+       set_page_refcounted(page);
 }
 
 /*