mm/sl[aou]b: Shrink __kmem_cache_create() parameter lists
Do the initial settings of the fields in common code. This will allow us to push more processing into common code later and improve readability. 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
278b1bb131
commit
8a13a4cc80
@@ -100,7 +100,6 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align
|
||||
{
|
||||
struct kmem_cache *s = NULL;
|
||||
int err = 0;
|
||||
char *n;
|
||||
|
||||
get_online_cpus();
|
||||
mutex_lock(&slab_mutex);
|
||||
@@ -109,32 +108,33 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align
|
||||
goto out_locked;
|
||||
|
||||
|
||||
n = kstrdup(name, GFP_KERNEL);
|
||||
if (!n) {
|
||||
err = -ENOMEM;
|
||||
goto out_locked;
|
||||
}
|
||||
|
||||
s = __kmem_cache_alias(name, size, align, flags, ctor);
|
||||
if (s)
|
||||
goto out_locked;
|
||||
|
||||
s = kmem_cache_zalloc(kmem_cache, GFP_KERNEL);
|
||||
if (s) {
|
||||
err = __kmem_cache_create(s, n, size, align, flags, ctor);
|
||||
s->object_size = s->size = size;
|
||||
s->align = align;
|
||||
s->ctor = ctor;
|
||||
s->name = kstrdup(name, GFP_KERNEL);
|
||||
if (!s->name) {
|
||||
kmem_cache_free(kmem_cache, s);
|
||||
err = -ENOMEM;
|
||||
goto out_locked;
|
||||
}
|
||||
|
||||
err = __kmem_cache_create(s, flags);
|
||||
if (!err)
|
||||
|
||||
list_add(&s->list, &slab_caches);
|
||||
|
||||
else {
|
||||
kfree(n);
|
||||
kfree(s->name);
|
||||
kmem_cache_free(kmem_cache, s);
|
||||
}
|
||||
|
||||
} else {
|
||||
kfree(n);
|
||||
} else
|
||||
err = -ENOMEM;
|
||||
}
|
||||
|
||||
out_locked:
|
||||
mutex_unlock(&slab_mutex);
|
||||
|
Reference in New Issue
Block a user