summaryrefslogtreecommitdiffstats
path: root/mm/slob.c
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2006-03-25 12:06:42 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 17:22:49 +0100
commita8c0f9a41f88da703ade33f9c1626a55c786e8bb (patch)
tree8c2904597c61b873bfd85eed4ac196dd66e6f125 /mm/slob.c
parent[PATCH] slab: implement /proc/slab_allocators (diff)
downloadlinux-a8c0f9a41f88da703ade33f9c1626a55c786e8bb.tar.xz
linux-a8c0f9a41f88da703ade33f9c1626a55c786e8bb.zip
[PATCH] slab: introduce kmem_cache_zalloc allocator
Introduce a memory-zeroing variant of kmem_cache_alloc. The allocator already exits in XFS and there are potential users for it so this patch makes the allocator available for the general public. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/slob.c')
-rw-r--r--mm/slob.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/mm/slob.c b/mm/slob.c
index a1f42bdc0245..9bcc7e2cabfd 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -294,6 +294,16 @@ void *kmem_cache_alloc(struct kmem_cache *c, gfp_t flags)
}
EXPORT_SYMBOL(kmem_cache_alloc);
+void *kmem_cache_zalloc(struct kmem_cache *c, gfp_t flags)
+{
+ void *ret = kmem_cache_alloc(c, flags);
+ if (ret)
+ memset(ret, 0, c->size);
+
+ return ret;
+}
+EXPORT_SYMBOL(kmem_cache_zalloc);
+
void kmem_cache_free(struct kmem_cache *c, void *b)
{
if (c->dtor)