If the node does not change then there is no need to recalculate
the node from the page struct. So move the node determination
into the places where we acquire a new slab page.
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
c->freelist = get_freepointer(s, object);
page->inuse = page->objects;
page->freelist = NULL;
- c->node = page_to_nid(page);
unlock_out:
slab_unlock(page);
new_slab:
page = get_partial(s, gfpflags, node);
if (page) {
- c->page = page;
stat(s, ALLOC_FROM_PARTIAL);
+load_from_page:
+ c->node = page_to_nid(page);
+ c->page = page;
goto load_freelist;
}
slab_lock(page);
__SetPageSlubFrozen(page);
- c->page = page;
- goto load_freelist;
+
+ goto load_from_page;
}
if (!(gfpflags & __GFP_NOWARN) && printk_ratelimit())
slab_out_of_memory(s, gfpflags, node);