[Bluetooth] Add support for Canyon CN-BTU1 dongle
[pandora-kernel.git] / drivers / md / multipath.c
index e6aa309..1cc9de4 100644 (file)
 #define        NR_RESERVED_BUFS        32
 
 
-static void *mp_pool_alloc(gfp_t gfp_flags, void *data)
-{
-       struct multipath_bh *mpb;
-       mpb = kzalloc(sizeof(*mpb), gfp_flags);
-       return mpb;
-}
-
-static void mp_pool_free(void *mpb, void *data)
-{
-       kfree(mpb);
-}
-
 static int multipath_map (multipath_conf_t *conf)
 {
        int i, disks = conf->raid_disks;
@@ -303,6 +291,7 @@ static void print_multipath_conf (multipath_conf_t *conf)
 static int multipath_add_disk(mddev_t *mddev, mdk_rdev_t *rdev)
 {
        multipath_conf_t *conf = mddev->private;
+       struct request_queue *q;
        int found = 0;
        int path;
        struct multipath_info *p;
@@ -311,8 +300,8 @@ static int multipath_add_disk(mddev_t *mddev, mdk_rdev_t *rdev)
 
        for (path=0; path<mddev->raid_disks; path++) 
                if ((p=conf->multipaths+path)->rdev == NULL) {
-                       blk_queue_stack_limits(mddev->queue,
-                                              rdev->bdev->bd_disk->queue);
+                       q = rdev->bdev->bd_disk->queue;
+                       blk_queue_stack_limits(mddev->queue, q);
 
                /* as we don't honour merge_bvec_fn, we must never risk
                 * violating it, so limit ->max_sector to one PAGE, as
@@ -320,7 +309,7 @@ static int multipath_add_disk(mddev_t *mddev, mdk_rdev_t *rdev)
                 * (Note: it is very unlikely that a device with
                 * merge_bvec_fn will be involved in multipath.)
                 */
-                       if (rdev->bdev->bd_disk->queue->merge_bvec_fn &&
+                       if (q->merge_bvec_fn &&
                            mddev->queue->max_sectors > (PAGE_SIZE>>9))
                                blk_queue_max_sectors(mddev->queue, PAGE_SIZE>>9);
 
@@ -493,9 +482,8 @@ static int multipath_run (mddev_t *mddev)
        }
        mddev->degraded = conf->raid_disks = conf->working_disks;
 
-       conf->pool = mempool_create(NR_RESERVED_BUFS,
-                                   mp_pool_alloc, mp_pool_free,
-                                   NULL);
+       conf->pool = mempool_create_kzalloc_pool(NR_RESERVED_BUFS,
+                                                sizeof(struct multipath_bh));
        if (conf->pool == NULL) {
                printk(KERN_ERR 
                        "multipath: couldn't allocate memory for %s\n",