X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=mm%2Fslab.h;h=ab019e63e3c204d13b36c3957957e4310587d18b;hb=ab074ade9c33b3585da86d62e87bcb3e897a3f54;hp=6599f2084e80ef4e4e4dcd62abd7078b42efe216;hpb=9163582c3f22cfba90a78749751ac70b127a9167;p=deliverable%2Flinux.git diff --git a/mm/slab.h b/mm/slab.h index 6599f2084e80..ab019e63e3c2 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -50,7 +50,6 @@ struct kmem_cache { enum slab_state { DOWN, /* No slab functionality yet */ PARTIAL, /* SLUB: kmem_cache_node available */ - PARTIAL_ARRAYCACHE, /* SLAB: kmalloc size for arraycache available */ PARTIAL_NODE, /* SLAB: kmalloc size for node struct available */ UP, /* Slab caches usable but not all extras yet */ FULL /* Everything is working */ @@ -88,15 +87,30 @@ extern void create_boot_cache(struct kmem_cache *, const char *name, size_t size, unsigned long flags); struct mem_cgroup; -#ifdef CONFIG_SLUB + +int slab_unmergeable(struct kmem_cache *s); +struct kmem_cache *find_mergeable(size_t size, size_t align, + unsigned long flags, const char *name, void (*ctor)(void *)); +#ifndef CONFIG_SLOB struct kmem_cache * __kmem_cache_alias(const char *name, size_t size, size_t align, unsigned long flags, void (*ctor)(void *)); + +unsigned long kmem_cache_flags(unsigned long object_size, + unsigned long flags, const char *name, + void (*ctor)(void *)); #else static inline struct kmem_cache * __kmem_cache_alias(const char *name, size_t size, size_t align, unsigned long flags, void (*ctor)(void *)) { return NULL; } + +static inline unsigned long kmem_cache_flags(unsigned long object_size, + unsigned long flags, const char *name, + void (*ctor)(void *)) +{ + return flags; +} #endif