diff options
author | Christoph Lameter <cl@linux.com> | 2011-08-10 01:12:24 +0400 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2011-08-19 20:34:26 +0400 |
commit | e6e82ea1127d899af7eee876f1c1103716d13772 (patch) | |
tree | 76325c985e7265dd5dff9b37b785fa17b7630b03 /mm | |
parent | 7db0d7054048da140798d8bfdd7fff5f74f85abf (diff) | |
download | linux-e6e82ea1127d899af7eee876f1c1103716d13772.tar.xz |
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>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 5 |
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) 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 @@ new_slab: */ 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 |