Skip to content

Commit 4a2c211

Browse files
Matthew Wilcox (Oracle)tehcaster
authored andcommitted
slab: Remove folio references from build_detached_freelist()
Use pages and slabs directly instead of converting to folios. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Link: https://patch.msgid.link/20251113000932.1589073-11-willy@infradead.org Reviewed-by: Harry Yoo <harry.yoo@oracle.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
1 parent 5db009d commit 4a2c211

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

mm/slub.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7245,23 +7245,25 @@ int build_detached_freelist(struct kmem_cache *s, size_t size,
72457245
{
72467246
int lookahead = 3;
72477247
void *object;
7248-
struct folio *folio;
7248+
struct page *page;
7249+
struct slab *slab;
72497250
size_t same;
72507251

72517252
object = p[--size];
7252-
folio = virt_to_folio(object);
7253+
page = virt_to_page(object);
7254+
slab = page_slab(page);
72537255
if (!s) {
72547256
/* Handle kalloc'ed objects */
7255-
if (unlikely(!folio_test_slab(folio))) {
7256-
free_large_kmalloc(&folio->page, object);
7257+
if (!slab) {
7258+
free_large_kmalloc(page, object);
72577259
df->slab = NULL;
72587260
return size;
72597261
}
72607262
/* Derive kmem_cache from object */
7261-
df->slab = folio_slab(folio);
7262-
df->s = df->slab->slab_cache;
7263+
df->slab = slab;
7264+
df->s = slab->slab_cache;
72637265
} else {
7264-
df->slab = folio_slab(folio);
7266+
df->slab = slab;
72657267
df->s = cache_from_obj(s, object); /* Support for memcg */
72667268
}
72677269

0 commit comments

Comments
 (0)