[PATCH 6/9] block: Use bio_sectors() more consistently
Bunch of places in the code weren't using it where they could be - this'll reduce the size of the patch that puts bi_sector/bi_size/bi_idx into a struct bvec_iter. Signed-off-by: Kent Overstreet CC: Jens Axboe --- drivers/block/aoe/aoeblk.c | 2 +- drivers/block/aoe/aoecmd.c | 2 +- drivers/block/brd.c | 3 +-- drivers/block/pktcdvd.c | 2 +- drivers/block/ps3vram.c | 2 +- drivers/md/dm-raid1.c| 2 +- drivers/md/raid0.c | 6 +++--- drivers/md/raid1.c | 17 - drivers/md/raid10.c | 24 +++- drivers/md/raid5.c | 8 include/trace/events/block.h | 10 +- 11 files changed, 37 insertions(+), 41 deletions(-) diff --git a/drivers/block/aoe/aoeblk.c b/drivers/block/aoe/aoeblk.c index 321de7b..6e4420a 100644 --- a/drivers/block/aoe/aoeblk.c +++ b/drivers/block/aoe/aoeblk.c @@ -199,7 +199,7 @@ aoeblk_make_request(struct request_queue *q, struct bio *bio) buf->bio = bio; buf->resid = bio->bi_size; buf->sector = bio->bi_sector; - buf->bv = >bi_io_vec[bio->bi_idx]; + buf->bv = bio_iovec(bio); buf->bv_resid = buf->bv->bv_len; WARN_ON(buf->bv_resid == 0); buf->bv_off = buf->bv->bv_offset; diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index de0435e..2b52ebc 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c @@ -720,7 +720,7 @@ gettgt(struct aoedev *d, char *addr) static inline void diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector) { - unsigned long n_sect = bio->bi_size >> 9; + unsigned long n_sect = bio_sectors(bio); const int rw = bio_data_dir(bio); struct hd_struct *part; int cpu; diff --git a/drivers/block/brd.c b/drivers/block/brd.c index 531ceb3..d5c4978 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -334,8 +334,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio) int err = -EIO; sector = bio->bi_sector; - if (sector + (bio->bi_size >> SECTOR_SHIFT) > - get_capacity(bdev->bd_disk)) + if (sector + bio_sectors(bio) > get_capacity(bdev->bd_disk)) goto out; if (unlikely(bio->bi_rw & REQ_DISCARD)) { diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 8df3216..0824627 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -2433,7 +2433,7 @@ static void pkt_make_request(struct request_queue *q, struct bio *bio) cloned_bio->bi_bdev = pd->bdev; cloned_bio->bi_private = psd; cloned_bio->bi_end_io = pkt_end_io_read_cloned; - pd->stats.secs_r += bio->bi_size >> 9; + pd->stats.secs_r += bio_sectors(bio); pkt_queue_bio(pd, cloned_bio); return; } diff --git a/drivers/block/ps3vram.c b/drivers/block/ps3vram.c index f58cdcf..1ff38e8 100644 --- a/drivers/block/ps3vram.c +++ b/drivers/block/ps3vram.c @@ -553,7 +553,7 @@ static struct bio *ps3vram_do_bio(struct ps3_system_bus_device *dev, struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev); int write = bio_data_dir(bio) == WRITE; const char *op = write ? "write" : "read"; - loff_t offset = bio->bi_sector << 9; + loff_t offset = bio_sectors(bio); int error = 0; struct bio_vec *bvec; unsigned int i; diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index bc5ddba8..3dac2de 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c @@ -457,7 +457,7 @@ static void map_region(struct dm_io_region *io, struct mirror *m, { io->bdev = m->dev->bdev; io->sector = map_sector(m, bio); - io->count = bio->bi_size >> 9; + io->count = bio_sectors(bio); } static void hold_bio(struct mirror_set *ms, struct bio *bio) diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index de63a1f..387cb89 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c @@ -484,11 +484,11 @@ static inline int is_io_in_chunk_boundary(struct mddev *mddev, { if (likely(is_power_of_2(chunk_sects))) { return chunk_sects >= ((bio->bi_sector & (chunk_sects-1)) - + (bio->bi_size >> 9)); + + bio_sectors(bio)); } else{ sector_t sector = bio->bi_sector; return chunk_sects >= (sector_div(sector, chunk_sects) - + (bio->bi_size >> 9)); + + bio_sectors(bio)); } } @@ -542,7 +542,7 @@ 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
[PATCH 6/9] block: Use bio_sectors() more consistently
Bunch of places in the code weren't using it where they could be - this'll reduce the size of the patch that puts bi_sector/bi_size/bi_idx into a struct bvec_iter. Signed-off-by: Kent Overstreet koverstr...@google.com CC: Jens Axboe ax...@kernel.dk --- drivers/block/aoe/aoeblk.c | 2 +- drivers/block/aoe/aoecmd.c | 2 +- drivers/block/brd.c | 3 +-- drivers/block/pktcdvd.c | 2 +- drivers/block/ps3vram.c | 2 +- drivers/md/dm-raid1.c| 2 +- drivers/md/raid0.c | 6 +++--- drivers/md/raid1.c | 17 - drivers/md/raid10.c | 24 +++- drivers/md/raid5.c | 8 include/trace/events/block.h | 10 +- 11 files changed, 37 insertions(+), 41 deletions(-) diff --git a/drivers/block/aoe/aoeblk.c b/drivers/block/aoe/aoeblk.c index 321de7b..6e4420a 100644 --- a/drivers/block/aoe/aoeblk.c +++ b/drivers/block/aoe/aoeblk.c @@ -199,7 +199,7 @@ aoeblk_make_request(struct request_queue *q, struct bio *bio) buf-bio = bio; buf-resid = bio-bi_size; buf-sector = bio-bi_sector; - buf-bv = bio-bi_io_vec[bio-bi_idx]; + buf-bv = bio_iovec(bio); buf-bv_resid = buf-bv-bv_len; WARN_ON(buf-bv_resid == 0); buf-bv_off = buf-bv-bv_offset; diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index de0435e..2b52ebc 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c @@ -720,7 +720,7 @@ gettgt(struct aoedev *d, char *addr) static inline void diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector) { - unsigned long n_sect = bio-bi_size 9; + unsigned long n_sect = bio_sectors(bio); const int rw = bio_data_dir(bio); struct hd_struct *part; int cpu; diff --git a/drivers/block/brd.c b/drivers/block/brd.c index 531ceb3..d5c4978 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -334,8 +334,7 @@ static void brd_make_request(struct request_queue *q, struct bio *bio) int err = -EIO; sector = bio-bi_sector; - if (sector + (bio-bi_size SECTOR_SHIFT) - get_capacity(bdev-bd_disk)) + if (sector + bio_sectors(bio) get_capacity(bdev-bd_disk)) goto out; if (unlikely(bio-bi_rw REQ_DISCARD)) { diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 8df3216..0824627 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -2433,7 +2433,7 @@ static void pkt_make_request(struct request_queue *q, struct bio *bio) cloned_bio-bi_bdev = pd-bdev; cloned_bio-bi_private = psd; cloned_bio-bi_end_io = pkt_end_io_read_cloned; - pd-stats.secs_r += bio-bi_size 9; + pd-stats.secs_r += bio_sectors(bio); pkt_queue_bio(pd, cloned_bio); return; } diff --git a/drivers/block/ps3vram.c b/drivers/block/ps3vram.c index f58cdcf..1ff38e8 100644 --- a/drivers/block/ps3vram.c +++ b/drivers/block/ps3vram.c @@ -553,7 +553,7 @@ static struct bio *ps3vram_do_bio(struct ps3_system_bus_device *dev, struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev); int write = bio_data_dir(bio) == WRITE; const char *op = write ? write : read; - loff_t offset = bio-bi_sector 9; + loff_t offset = bio_sectors(bio); int error = 0; struct bio_vec *bvec; unsigned int i; diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index bc5ddba8..3dac2de 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c @@ -457,7 +457,7 @@ static void map_region(struct dm_io_region *io, struct mirror *m, { io-bdev = m-dev-bdev; io-sector = map_sector(m, bio); - io-count = bio-bi_size 9; + io-count = bio_sectors(bio); } static void hold_bio(struct mirror_set *ms, struct bio *bio) diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index de63a1f..387cb89 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c @@ -484,11 +484,11 @@ static inline int is_io_in_chunk_boundary(struct mddev *mddev, { if (likely(is_power_of_2(chunk_sects))) { return chunk_sects = ((bio-bi_sector (chunk_sects-1)) - + (bio-bi_size 9)); + + bio_sectors(bio)); } else{ sector_t sector = bio-bi_sector; return chunk_sects = (sector_div(sector, chunk_sects) - + (bio-bi_size 9)); + + bio_sectors(bio)); } } @@ -542,7 +542,7 @@ 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,