Commit 220897ff authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] mempool helpers used by device mapper

parent 8341f60b
...@@ -27,4 +27,11 @@ extern void mempool_destroy(mempool_t *pool); ...@@ -27,4 +27,11 @@ extern void mempool_destroy(mempool_t *pool);
extern void * mempool_alloc(mempool_t *pool, int gfp_mask); extern void * mempool_alloc(mempool_t *pool, int gfp_mask);
extern void mempool_free(void *element, mempool_t *pool); extern void mempool_free(void *element, mempool_t *pool);
/*
* A mempool_alloc_t and mempool_free_t that get the memory from
* a slab that is passed in through pool_data.
*/
void *mempool_alloc_slab(int gfp_mask, void *pool_data);
void mempool_free_slab(void *element, void *pool_data);
#endif /* _LINUX_MEMPOOL_H */ #endif /* _LINUX_MEMPOOL_H */
...@@ -259,8 +259,25 @@ void mempool_free(void *element, mempool_t *pool) ...@@ -259,8 +259,25 @@ void mempool_free(void *element, mempool_t *pool)
pool->free(element, pool->pool_data); pool->free(element, pool->pool_data);
} }
/*
* A commonly used alloc and free fn.
*/
void *mempool_alloc_slab(int gfp_mask, void *pool_data)
{
kmem_cache_t *mem = (kmem_cache_t *) pool_data;
return kmem_cache_alloc(mem, gfp_mask);
}
void mempool_free_slab(void *element, void *pool_data)
{
kmem_cache_t *mem = (kmem_cache_t *) pool_data;
kmem_cache_free(mem, element);
}
EXPORT_SYMBOL(mempool_create); EXPORT_SYMBOL(mempool_create);
EXPORT_SYMBOL(mempool_resize); EXPORT_SYMBOL(mempool_resize);
EXPORT_SYMBOL(mempool_destroy); EXPORT_SYMBOL(mempool_destroy);
EXPORT_SYMBOL(mempool_alloc); EXPORT_SYMBOL(mempool_alloc);
EXPORT_SYMBOL(mempool_free); EXPORT_SYMBOL(mempool_free);
EXPORT_SYMBOL(mempool_alloc_slab);
EXPORT_SYMBOL(mempool_free_slab);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment