summaryrefslogtreecommitdiffstats
path: root/mm/slab_common.c
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2012-09-05 00:18:32 +0000
committerPekka Enberg <penberg@kernel.org>2012-09-05 12:00:36 +0300
commit96d17b7be0a9849d381442030886211dbb2a7061 (patch)
treeb0d15ba6ffcc16732a76367fff194b8052da9fa2 /mm/slab_common.c
parentcbb79694d592e9a76880f6ef6db8feccaeee1c32 (diff)
downloadlinux-stable-96d17b7be0a9849d381442030886211dbb2a7061.tar.gz
linux-stable-96d17b7be0a9849d381442030886211dbb2a7061.tar.bz2
linux-stable-96d17b7be0a9849d381442030886211dbb2a7061.zip
mm/sl[aou]b: Move sysfs_slab_add to common
Simplify locking by moving the slab_add_sysfs after all locks have been dropped. Eases the upcoming move to provide sysfs support for all allocators. Reviewed-by: Glauber Costa <glommer@parallels.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.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/mm/slab_common.c b/mm/slab_common.c
index adc42b01b25b..4f722084baed 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -152,6 +152,14 @@ out_locked:
return NULL;
}
+ if (s->refcount == 1) {
+ err = sysfs_slab_add(s);
+ if (err)
+ printk(KERN_WARNING "kmem_cache_create(%s) failed to"
+ " create sysfs entry. Error %d\n",
+ name, err);
+ }
+
return s;
}
EXPORT_SYMBOL(kmem_cache_create);