In preparation for allocating frozen pages, stop initialising the page refcount in __alloc_pages_direct_reclaim(). Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> --- mm/page_alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 555409f04d49..7c306231b336 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4762,7 +4762,6 @@ __alloc_pages_direct_reclaim(gfp_t gfp_mask, unsigned int order, drained = true; goto retry; } - set_page_refcounted(page); out: psi_memstall_leave(&pflags); @@ -5156,8 +5155,10 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, /* Try direct reclaim and then allocating */ page = __alloc_pages_direct_reclaim(gfp_mask, order, alloc_flags, ac, &did_some_progress); - if (page) + if (page) { + set_page_refcounted(page); goto got_pg; + } /* Try direct compaction and then allocating */ page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags, ac, -- 2.35.1