|
@@ -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);
|
|
}
|
|
}
|