aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab_common.c
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2012-09-04 19:38:33 -0400
committerPekka Enberg <penberg@kernel.org>2012-09-05 05:00:36 -0400
commit12c3667fb780e20360ad0bde32dfb3591ef609ad (patch)
treedbced65da22c85212bf632ff6953c0a94252c3ef /mm/slab_common.c
parent8f4c765c22deee766319ae9a1db68325f14816e6 (diff)
mm/sl[aou]b: Get rid of __kmem_cache_destroy
What is done there can be done in __kmem_cache_shutdown. This affects RCU handling somewhat. On rcu free all slab allocators do not refer to other management structures than the kmem_cache structure. Therefore these other structures can be freed before the rcu deferred free to the page allocator occurs. Reviewed-by: Joonsoo Kim <js1304@gmail.com> Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'mm/slab_common.c')
-rw-r--r--mm/slab_common.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/mm/slab_common.c b/mm/slab_common.c
index d6deae9108cd..7df814e8fbea 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -153,7 +153,6 @@ void kmem_cache_destroy(struct kmem_cache *s)
153 if (s->flags & SLAB_DESTROY_BY_RCU) 153 if (s->flags & SLAB_DESTROY_BY_RCU)
154 rcu_barrier(); 154 rcu_barrier();
155 155
156 __kmem_cache_destroy(s);
157 kmem_cache_free(kmem_cache, s); 156 kmem_cache_free(kmem_cache, s);
158 } else { 157 } else {
159 list_add(&s->list, &slab_caches); 158 list_add(&s->list, &slab_caches);