linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / md / dm-io.c
index da663d2..4809b20 100644 (file)
@@ -32,6 +32,16 @@ struct io {
 static unsigned _num_ios;
 static mempool_t *_io_pool;
 
+static void *alloc_io(gfp_t gfp_mask, void *pool_data)
+{
+       return kmalloc(sizeof(struct io), gfp_mask);
+}
+
+static void free_io(void *element, void *pool_data)
+{
+       kfree(element);
+}
+
 static unsigned int pages_to_ios(unsigned int pages)
 {
        return 4 * pages;       /* too many ? */
@@ -55,8 +65,7 @@ static int resize_pool(unsigned int new_ios)
 
        } else {
                /* create new pool */
-               _io_pool = mempool_create_kmalloc_pool(new_ios,
-                                                      sizeof(struct io));
+               _io_pool = mempool_create(new_ios, alloc_io, free_io, NULL);
                if (!_io_pool)
                        return -ENOMEM;