linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / mm / mempool.c
index ccd8cb8..1a99b80 100644 (file)
@@ -183,8 +183,8 @@ EXPORT_SYMBOL(mempool_resize);
  */
 void mempool_destroy(mempool_t *pool)
 {
-       /* Check for outstanding elements */
-       BUG_ON(pool->curr_nr != pool->min_nr);
+       if (pool->curr_nr != pool->min_nr)
+               BUG();          /* There were outstanding elements */
        free_pool(pool);
 }
 EXPORT_SYMBOL(mempool_destroy);
@@ -238,13 +238,8 @@ repeat_alloc:
        init_wait(&wait);
        prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE);
        smp_mb();
-       if (!pool->curr_nr) {
-               /*
-                * FIXME: this should be io_schedule().  The timeout is there
-                * as a workaround for some DM problems in 2.6.18.
-                */
-               io_schedule_timeout(5*HZ);
-       }
+       if (!pool->curr_nr)
+               io_schedule();
        finish_wait(&pool->wait, &wait);
 
        goto repeat_alloc;
@@ -283,56 +278,14 @@ EXPORT_SYMBOL(mempool_free);
  */
 void *mempool_alloc_slab(gfp_t gfp_mask, void *pool_data)
 {
-       struct kmem_cache *mem = pool_data;
+       kmem_cache_t *mem = (kmem_cache_t *) pool_data;
        return kmem_cache_alloc(mem, gfp_mask);
 }
 EXPORT_SYMBOL(mempool_alloc_slab);
 
 void mempool_free_slab(void *element, void *pool_data)
 {
-       struct kmem_cache *mem = pool_data;
+       kmem_cache_t *mem = (kmem_cache_t *) pool_data;
        kmem_cache_free(mem, element);
 }
 EXPORT_SYMBOL(mempool_free_slab);
-
-/*
- * A commonly used alloc and free fn that kmalloc/kfrees the amount of memory
- * specfied by pool_data
- */
-void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data)
-{
-       size_t size = (size_t)(long)pool_data;
-       return kmalloc(size, gfp_mask);
-}
-EXPORT_SYMBOL(mempool_kmalloc);
-
-void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data)
-{
-       size_t size = (size_t) pool_data;
-       return kzalloc(size, gfp_mask);
-}
-EXPORT_SYMBOL(mempool_kzalloc);
-
-void mempool_kfree(void *element, void *pool_data)
-{
-       kfree(element);
-}
-EXPORT_SYMBOL(mempool_kfree);
-
-/*
- * A simple mempool-backed page allocator that allocates pages
- * of the order specified by pool_data.
- */
-void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data)
-{
-       int order = (int)(long)pool_data;
-       return alloc_pages(gfp_mask, order);
-}
-EXPORT_SYMBOL(mempool_alloc_pages);
-
-void mempool_free_pages(void *element, void *pool_data)
-{
-       int order = (int)(long)pool_data;
-       __free_pages(element, order);
-}
-EXPORT_SYMBOL(mempool_free_pages);