]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/md/multipath.c
Merge commit '3ff195b011d7decf501a4d55aeed312731094796' into for-linus
[karo-tx-linux.git] / drivers / md / multipath.c
index 789bf535d29cbd7d9b6b00b9f825dd6c6f663791..410fb60699ac1d2b2ca4af62bca7ed89b2af60d7 100644 (file)
@@ -85,7 +85,7 @@ static void multipath_end_bh_io (struct multipath_bh *mp_bh, int err)
 static void multipath_end_request(struct bio *bio, int error)
 {
        int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
-       struct multipath_bh * mp_bh = (struct multipath_bh *)(bio->bi_private);
+       struct multipath_bh *mp_bh = bio->bi_private;
        multipath_conf_t *conf = mp_bh->mddev->private;
        mdk_rdev_t *rdev = conf->multipaths[mp_bh->path].rdev;
 
@@ -136,14 +136,11 @@ static void multipath_unplug(struct request_queue *q)
 }
 
 
-static int multipath_make_request (struct request_queue *q, struct bio * bio)
+static int multipath_make_request(mddev_t *mddev, struct bio * bio)
 {
-       mddev_t *mddev = q->queuedata;
        multipath_conf_t *conf = mddev->private;
        struct multipath_bh * mp_bh;
        struct multipath_info *multipath;
-       const int rw = bio_data_dir(bio);
-       int cpu;
 
        if (unlikely(bio_rw_flagged(bio, BIO_RW_BARRIER))) {
                md_barrier_request(mddev, bio);
@@ -155,12 +152,6 @@ static int multipath_make_request (struct request_queue *q, struct bio * bio)
        mp_bh->master_bio = bio;
        mp_bh->mddev = mddev;
 
-       cpu = part_stat_lock();
-       part_stat_inc(cpu, &mddev->gendisk->part0, ios[rw]);
-       part_stat_add(cpu, &mddev->gendisk->part0, sectors[rw],
-                     bio_sectors(bio));
-       part_stat_unlock();
-
        mp_bh->path = multipath_map(conf);
        if (mp_bh->path < 0) {
                bio_endio(bio, -EIO);