diff options
-rw-r--r-- | mm/slab.c | 26 | ||||
-rw-r--r-- | mm/slab.h | 2 |
2 files changed, 27 insertions, 1 deletions
@@ -2104,6 +2104,32 @@ static int __init_refok setup_cpu_cache(struct kmem_cache *cachep, gfp_t gfp) | |||
2104 | return 0; | 2104 | return 0; |
2105 | } | 2105 | } |
2106 | 2106 | ||
2107 | unsigned long kmem_cache_flags(unsigned long object_size, | ||
2108 | unsigned long flags, const char *name, | ||
2109 | void (*ctor)(void *)) | ||
2110 | { | ||
2111 | return flags; | ||
2112 | } | ||
2113 | |||
2114 | struct kmem_cache * | ||
2115 | __kmem_cache_alias(const char *name, size_t size, size_t align, | ||
2116 | unsigned long flags, void (*ctor)(void *)) | ||
2117 | { | ||
2118 | struct kmem_cache *cachep; | ||
2119 | |||
2120 | cachep = find_mergeable(size, align, flags, name, ctor); | ||
2121 | if (cachep) { | ||
2122 | cachep->refcount++; | ||
2123 | |||
2124 | /* | ||
2125 | * Adjust the object sizes so that we clear | ||
2126 | * the complete object on kzalloc. | ||
2127 | */ | ||
2128 | cachep->object_size = max_t(int, cachep->object_size, size); | ||
2129 | } | ||
2130 | return cachep; | ||
2131 | } | ||
2132 | |||
2107 | /** | 2133 | /** |
2108 | * __kmem_cache_create - Create a cache. | 2134 | * __kmem_cache_create - Create a cache. |
2109 | * @cachep: cache management descriptor | 2135 | * @cachep: cache management descriptor |
@@ -92,7 +92,7 @@ struct mem_cgroup; | |||
92 | int slab_unmergeable(struct kmem_cache *s); | 92 | int slab_unmergeable(struct kmem_cache *s); |
93 | struct kmem_cache *find_mergeable(size_t size, size_t align, | 93 | struct kmem_cache *find_mergeable(size_t size, size_t align, |
94 | unsigned long flags, const char *name, void (*ctor)(void *)); | 94 | unsigned long flags, const char *name, void (*ctor)(void *)); |
95 | #ifdef CONFIG_SLUB | 95 | #ifndef CONFIG_SLOB |
96 | struct kmem_cache * | 96 | struct kmem_cache * |
97 | __kmem_cache_alias(const char *name, size_t size, size_t align, | 97 | __kmem_cache_alias(const char *name, size_t size, size_t align, |
98 | unsigned long flags, void (*ctor)(void *)); | 98 | unsigned long flags, void (*ctor)(void *)); |