md: convert to bioset_init()/mempool_init()
[sfrench/cifs-2.6.git] / drivers / md / md-multipath.c
index 0a7e99d62c69048d7000d3dc6bbcaa3320c742b5..f71fcdb9b39c50052b8747a976ce89e0df33a6a1 100644 (file)
@@ -80,7 +80,7 @@ static void multipath_end_bh_io(struct multipath_bh *mp_bh, blk_status_t status)
 
        bio->bi_status = status;
        bio_endio(bio);
-       mempool_free(mp_bh, conf->pool);
+       mempool_free(mp_bh, &conf->pool);
 }
 
 static void multipath_end_request(struct bio *bio)
@@ -117,7 +117,7 @@ static bool multipath_make_request(struct mddev *mddev, struct bio * bio)
                return true;
        }
 
-       mp_bh = mempool_alloc(conf->pool, GFP_NOIO);
+       mp_bh = mempool_alloc(&conf->pool, GFP_NOIO);
 
        mp_bh->master_bio = bio;
        mp_bh->mddev = mddev;
@@ -125,7 +125,7 @@ static bool multipath_make_request(struct mddev *mddev, struct bio * bio)
        mp_bh->path = multipath_map(conf);
        if (mp_bh->path < 0) {
                bio_io_error(bio);
-               mempool_free(mp_bh, conf->pool);
+               mempool_free(mp_bh, &conf->pool);
                return true;
        }
        multipath = conf->multipaths + mp_bh->path;
@@ -378,6 +378,7 @@ static int multipath_run (struct mddev *mddev)
        struct multipath_info *disk;
        struct md_rdev *rdev;
        int working_disks;
+       int ret;
 
        if (md_check_no_bitmap(mddev))
                return -EINVAL;
@@ -431,9 +432,9 @@ static int multipath_run (struct mddev *mddev)
        }
        mddev->degraded = conf->raid_disks - working_disks;
 
-       conf->pool = mempool_create_kmalloc_pool(NR_RESERVED_BUFS,
-                                                sizeof(struct multipath_bh));
-       if (conf->pool == NULL)
+       ret = mempool_init_kmalloc_pool(&conf->pool, NR_RESERVED_BUFS,
+                                       sizeof(struct multipath_bh));
+       if (ret)
                goto out_free_conf;
 
        mddev->thread = md_register_thread(multipathd, mddev,
@@ -455,7 +456,7 @@ static int multipath_run (struct mddev *mddev)
        return 0;
 
 out_free_conf:
-       mempool_destroy(conf->pool);
+       mempool_exit(&conf->pool);
        kfree(conf->multipaths);
        kfree(conf);
        mddev->private = NULL;
@@ -467,7 +468,7 @@ static void multipath_free(struct mddev *mddev, void *priv)
 {
        struct mpconf *conf = priv;
 
-       mempool_destroy(conf->pool);
+       mempool_exit(&conf->pool);
        kfree(conf->multipaths);
        kfree(conf);
 }