diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2006-03-25 06:06:42 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 11:22:49 -0500 |
commit | a8c0f9a41f88da703ade33f9c1626a55c786e8bb (patch) | |
tree | 8c2904597c61b873bfd85eed4ac196dd66e6f125 /mm/slab.c | |
parent | 871751e25d956ad24f129ca972b7851feaa61d53 (diff) |
[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/slab.c')
-rw-r--r-- | mm/slab.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -3108,6 +3108,23 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags) | |||
3108 | EXPORT_SYMBOL(kmem_cache_alloc); | 3108 | EXPORT_SYMBOL(kmem_cache_alloc); |
3109 | 3109 | ||
3110 | /** | 3110 | /** |
3111 | * kmem_cache_alloc - Allocate an object. The memory is set to zero. | ||
3112 | * @cache: The cache to allocate from. | ||
3113 | * @flags: See kmalloc(). | ||
3114 | * | ||
3115 | * Allocate an object from this cache and set the allocated memory to zero. | ||
3116 | * The flags are only relevant if the cache has no available objects. | ||
3117 | */ | ||
3118 | void *kmem_cache_zalloc(struct kmem_cache *cache, gfp_t flags) | ||
3119 | { | ||
3120 | void *ret = __cache_alloc(cache, flags, __builtin_return_address(0)); | ||
3121 | if (ret) | ||
3122 | memset(ret, 0, obj_size(cache)); | ||
3123 | return ret; | ||
3124 | } | ||
3125 | EXPORT_SYMBOL(kmem_cache_zalloc); | ||
3126 | |||
3127 | /** | ||
3111 | * kmem_ptr_validate - check if an untrusted pointer might | 3128 | * kmem_ptr_validate - check if an untrusted pointer might |
3112 | * be a slab entry. | 3129 | * be a slab entry. |
3113 | * @cachep: the cache we're checking against | 3130 | * @cachep: the cache we're checking against |