mm/sl[aou]b: Move kmem_cache refcounting to common code
Get rid of the refcount stuff in the allocators and do that part of kmem_cache management in the common code. Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
committed by
Pekka Enberg
parent
8a13a4cc80
commit
cce89f4f69
@@ -2555,7 +2555,6 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags)
|
|||||||
*/
|
*/
|
||||||
BUG_ON(ZERO_OR_NULL_PTR(cachep->slabp_cache));
|
BUG_ON(ZERO_OR_NULL_PTR(cachep->slabp_cache));
|
||||||
}
|
}
|
||||||
cachep->refcount = 1;
|
|
||||||
|
|
||||||
err = setup_cpu_cache(cachep, gfp);
|
err = setup_cpu_cache(cachep, gfp);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -125,11 +125,12 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = __kmem_cache_create(s, flags);
|
err = __kmem_cache_create(s, flags);
|
||||||
if (!err)
|
if (!err) {
|
||||||
|
|
||||||
|
s->refcount = 1;
|
||||||
list_add(&s->list, &slab_caches);
|
list_add(&s->list, &slab_caches);
|
||||||
|
|
||||||
else {
|
} else {
|
||||||
kfree(s->name);
|
kfree(s->name);
|
||||||
kmem_cache_free(kmem_cache, s);
|
kmem_cache_free(kmem_cache, s);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -524,7 +524,6 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
|
|||||||
if (c->align < align)
|
if (c->align < align)
|
||||||
c->align = align;
|
c->align = align;
|
||||||
|
|
||||||
c->refcount = 1;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3093,7 +3093,6 @@ static int kmem_cache_open(struct kmem_cache *s, unsigned long flags)
|
|||||||
else
|
else
|
||||||
s->cpu_partial = 30;
|
s->cpu_partial = 30;
|
||||||
|
|
||||||
s->refcount = 1;
|
|
||||||
#ifdef CONFIG_NUMA
|
#ifdef CONFIG_NUMA
|
||||||
s->remote_node_defrag_ratio = 1000;
|
s->remote_node_defrag_ratio = 1000;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user