aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2011-08-09 17:12:24 -0400
committerPekka Enberg <penberg@kernel.org>2011-08-19 12:34:26 -0400
commite6e82ea1127d899af7eee876f1c1103716d13772 (patch)
tree76325c985e7265dd5dff9b37b785fa17b7630b03
parent7db0d7054048da140798d8bfdd7fff5f74f85abf (diff)
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>
-rw-r--r--mm/slub.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/mm/slub.c b/mm/slub.c
index d4b76bea5dba..83bb81de4468 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1447,7 +1447,7 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)
1447 set_freepointer(s, last, NULL); 1447 set_freepointer(s, last, NULL);
1448 1448
1449 page->freelist = start; 1449 page->freelist = start;
1450 page->inuse = 0; 1450 page->inuse = page->objects;
1451 page->frozen = 1; 1451 page->frozen = 1;
1452out: 1452out:
1453 return page; 1453 return page;
@@ -2139,7 +2139,6 @@ new_slab:
2139 */ 2139 */
2140 object = page->freelist; 2140 object = page->freelist;
2141 page->freelist = NULL; 2141 page->freelist = NULL;
2142 page->inuse = page->objects;
2143 2142
2144 stat(s, ALLOC_SLAB); 2143 stat(s, ALLOC_SLAB);
2145 c->node = page_to_nid(page); 2144 c->node = page_to_nid(page);
@@ -2681,7 +2680,7 @@ static void early_kmem_cache_node_alloc(int node)
2681 n = page->freelist; 2680 n = page->freelist;
2682 BUG_ON(!n); 2681 BUG_ON(!n);
2683 page->freelist = get_freepointer(kmem_cache_node, n); 2682 page->freelist = get_freepointer(kmem_cache_node, n);
2684 page->inuse++; 2683 page->inuse = 1;
2685 page->frozen = 0; 2684 page->frozen = 0;
2686 kmem_cache_node->node[node] = n; 2685 kmem_cache_node->node[node] = n;
2687#ifdef CONFIG_SLUB_DEBUG 2686#ifdef CONFIG_SLUB_DEBUG