mirror of https://gitee.com/openkylin/linux.git
slub: Prepare inuse field in new_slab()
inuse will always be set to page->objects. There is no point in initializing the field to zero in new_slab() and then overwriting the value in __slab_alloc(). Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
parent
7db0d70540
commit
e6e82ea112
|
@ -1447,7 +1447,7 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)
|
|||
set_freepointer(s, last, NULL);
|
||||
|
||||
page->freelist = start;
|
||||
page->inuse = 0;
|
||||
page->inuse = page->objects;
|
||||
page->frozen = 1;
|
||||
out:
|
||||
return page;
|
||||
|
@ -2139,7 +2139,6 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
|
|||
*/
|
||||
object = page->freelist;
|
||||
page->freelist = NULL;
|
||||
page->inuse = page->objects;
|
||||
|
||||
stat(s, ALLOC_SLAB);
|
||||
c->node = page_to_nid(page);
|
||||
|
@ -2681,7 +2680,7 @@ static void early_kmem_cache_node_alloc(int node)
|
|||
n = page->freelist;
|
||||
BUG_ON(!n);
|
||||
page->freelist = get_freepointer(kmem_cache_node, n);
|
||||
page->inuse++;
|
||||
page->inuse = 1;
|
||||
page->frozen = 0;
|
||||
kmem_cache_node->node[node] = n;
|
||||
#ifdef CONFIG_SLUB_DEBUG
|
||||
|
|
Loading…
Reference in New Issue