projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "mm/sl[aou]b: Move sysfs_slab_add to common"
[firefly-linux-kernel-4.4.55.git]
/
mm
/
slub.c
diff --git
a/mm/slub.c
b/mm/slub.c
index 0b122d8ec2169ab62dda8dc8abce7c0247a81ede..dafd465f7a3f32b4e28a9d95ec7d0aec15878b61 100644
(file)
--- a/
mm/slub.c
+++ b/
mm/slub.c
@@
-202,10
+202,12
@@
struct track {
enum track_item { TRACK_ALLOC, TRACK_FREE };
#ifdef CONFIG_SYSFS
enum track_item { TRACK_ALLOC, TRACK_FREE };
#ifdef CONFIG_SYSFS
+static int sysfs_slab_add(struct kmem_cache *);
static int sysfs_slab_alias(struct kmem_cache *, const char *);
static void sysfs_slab_remove(struct kmem_cache *);
#else
static int sysfs_slab_alias(struct kmem_cache *, const char *);
static void sysfs_slab_remove(struct kmem_cache *);
#else
+static inline int sysfs_slab_add(struct kmem_cache *s) { return 0; }
static inline int sysfs_slab_alias(struct kmem_cache *s, const char *p)
{ return 0; }
static inline void sysfs_slab_remove(struct kmem_cache *s) { }
static inline int sysfs_slab_alias(struct kmem_cache *s, const char *p)
{ return 0; }
static inline void sysfs_slab_remove(struct kmem_cache *s) { }
@@
-3943,7
+3945,20
@@
struct kmem_cache *__kmem_cache_alias(const char *name, size_t size,
int __kmem_cache_create(struct kmem_cache *s, unsigned long flags)
{
int __kmem_cache_create(struct kmem_cache *s, unsigned long flags)
{
- return kmem_cache_open(s, flags);
+ int err;
+
+ err = kmem_cache_open(s, flags);
+ if (err)
+ return err;
+
+ mutex_unlock(&slab_mutex);
+ err = sysfs_slab_add(s);
+ mutex_lock(&slab_mutex);
+
+ if (err)
+ kmem_cache_close(s);
+
+ return err;
}
#ifdef CONFIG_SMP
}
#ifdef CONFIG_SMP
@@
-5233,7
+5248,7
@@
static char *create_unique_id(struct kmem_cache *s)
return name;
}
return name;
}
-int sysfs_slab_add(struct kmem_cache *s)
+
static
int sysfs_slab_add(struct kmem_cache *s)
{
int err;
const char *name;
{
int err;
const char *name;