slab: Remove folio references from ___kmalloc_large_node()

There's no need to use folio APIs here; just use a page directly.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Harry Yoo <harry.yoo@oracle.com>
Link: https://patch.msgid.link/20251113000932.1589073-6-willy@infradead.org
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
Matthew Wilcox (Oracle)
2025-11-13 00:09:19 +00:00
committed by Vlastimil Babka
parent 09fa19e2f3
commit f9395bf5db

View File

@@ -5571,7 +5571,7 @@ unsigned int kmem_cache_sheaf_size(struct slab_sheaf *sheaf)
*/
static void *___kmalloc_large_node(size_t size, gfp_t flags, int node)
{
struct folio *folio;
struct page *page;
void *ptr = NULL;
unsigned int order = get_order(size);
@@ -5581,15 +5581,15 @@ static void *___kmalloc_large_node(size_t size, gfp_t flags, int node)
flags |= __GFP_COMP;
if (node == NUMA_NO_NODE)
folio = (struct folio *)alloc_frozen_pages_noprof(flags, order);
page = alloc_frozen_pages_noprof(flags, order);
else
folio = (struct folio *)__alloc_frozen_pages_noprof(flags, order, node, NULL);
page = __alloc_frozen_pages_noprof(flags, order, node, NULL);
if (folio) {
ptr = folio_address(folio);
lruvec_stat_mod_folio(folio, NR_SLAB_UNRECLAIMABLE_B,
if (page) {
ptr = page_address(page);
mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B,
PAGE_SIZE << order);
__folio_set_large_kmalloc(folio);
__SetPageLargeKmalloc(page);
}
ptr = kasan_kmalloc_large(ptr, size, flags);