block: Abstract out bvec iterator
[deliverable/linux.git] / drivers / md / raid0.c
index c4d420b7d2f43d0804e1c1a94d88ca63484b5ec3..e38d1d3226f3a60b5031cad427cf81c32d244a15 100644 (file)
@@ -501,10 +501,11 @@ static inline int is_io_in_chunk_boundary(struct mddev *mddev,
                        unsigned int chunk_sects, struct bio *bio)
 {
        if (likely(is_power_of_2(chunk_sects))) {
-               return chunk_sects >= ((bio->bi_sector & (chunk_sects-1))
+               return chunk_sects >=
+                       ((bio->bi_iter.bi_sector & (chunk_sects-1))
                                        + bio_sectors(bio));
        } else{
-               sector_t sector = bio->bi_sector;
+               sector_t sector = bio->bi_iter.bi_sector;
                return chunk_sects >= (sector_div(sector, chunk_sects)
                                                + bio_sectors(bio));
        }
@@ -524,7 +525,7 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
 
        chunk_sects = mddev->chunk_sectors;
        if (unlikely(!is_io_in_chunk_boundary(mddev, chunk_sects, bio))) {
-               sector_t sector = bio->bi_sector;
+               sector_t sector = bio->bi_iter.bi_sector;
                struct bio_pair *bp;
                /* Sanity check -- queue functions should prevent this happening */
                if (bio_segments(bio) > 1)
@@ -544,12 +545,12 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
                return;
        }
 
-       sector_offset = bio->bi_sector;
+       sector_offset = bio->bi_iter.bi_sector;
        zone = find_zone(mddev->private, &sector_offset);
-       tmp_dev = map_sector(mddev, zone, bio->bi_sector,
+       tmp_dev = map_sector(mddev, zone, bio->bi_iter.bi_sector,
                             &sector_offset);
        bio->bi_bdev = tmp_dev->bdev;
-       bio->bi_sector = sector_offset + zone->dev_start +
+       bio->bi_iter.bi_sector = sector_offset + zone->dev_start +
                tmp_dev->data_offset;
 
        if (unlikely((bio->bi_rw & REQ_DISCARD) &&
@@ -566,7 +567,8 @@ bad_map:
        printk("md/raid0:%s: make_request bug: can't convert block across chunks"
               " or bigger than %dk %llu %d\n",
               mdname(mddev), chunk_sects / 2,
-              (unsigned long long)bio->bi_sector, bio_sectors(bio) / 2);
+              (unsigned long long)bio->bi_iter.bi_sector,
+              bio_sectors(bio) / 2);
 
        bio_io_error(bio);
        return;
This page took 0.024652 seconds and 5 git commands to generate.