@@ -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,
In preparation for allocating frozen pages, stop initialising the page refcount in __alloc_pages_direct_reclaim(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- mm/page_alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)