[PATCH v2 05/26] block: Add bio_end()

2012-10-15 Thread Kent Overstreet
Just a little convenience macro - main reason to add it now is preparing
for immutable bio vecs, it'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 
---
 block/blk-core.c  |  2 +-
 block/cfq-iosched.c   |  7 ++-
 block/deadline-iosched.c  |  2 +-
 drivers/block/drbd/drbd_req.c |  2 +-
 drivers/block/pktcdvd.c   |  6 +++---
 drivers/md/dm-stripe.c|  2 +-
 drivers/md/dm-verity.c|  2 +-
 drivers/md/faulty.c   |  6 ++
 drivers/md/linear.c   |  3 +--
 drivers/md/raid1.c|  4 ++--
 drivers/md/raid5.c| 14 +++---
 drivers/s390/block/dcssblk.c  |  3 +--
 fs/btrfs/extent_io.c  |  3 +--
 fs/gfs2/lops.c|  2 +-
 include/linux/bio.h   |  1 +
 15 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 55c833c9..97511cb 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1557,7 +1557,7 @@ static void handle_bad_sector(struct bio *bio)
printk(KERN_INFO "%s: rw=%ld, want=%Lu, limit=%Lu\n",
bdevname(bio->bi_bdev, b),
bio->bi_rw,
-   (unsigned long long)bio->bi_sector + bio_sectors(bio),
+   (unsigned long long)bio_end(bio),
(long long)(i_size_read(bio->bi_bdev->bd_inode) >> 9));
 
set_bit(BIO_EOF, >bi_flags);
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index fb52df9..8eae0f3 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1883,11 +1883,8 @@ cfq_find_rq_fmerge(struct cfq_data *cfqd, struct bio 
*bio)
return NULL;
 
cfqq = cic_to_cfqq(cic, cfq_bio_sync(bio));
-   if (cfqq) {
-   sector_t sector = bio->bi_sector + bio_sectors(bio);
-
-   return elv_rb_find(>sort_list, sector);
-   }
+   if (cfqq)
+   return elv_rb_find(>sort_list, bio_end(bio));
 
return NULL;
 }
diff --git a/block/deadline-iosched.c b/block/deadline-iosched.c
index 599b12e..a3b4df9 100644
--- a/block/deadline-iosched.c
+++ b/block/deadline-iosched.c
@@ -132,7 +132,7 @@ deadline_merge(struct request_queue *q, struct request 
**req, struct bio *bio)
 * check for front merge
 */
if (dd->front_merges) {
-   sector_t sector = bio->bi_sector + bio_sectors(bio);
+   sector_t sector = bio_end(bio);
 
__rq = elv_rb_find(>sort_list[bio_data_dir(bio)], sector);
if (__rq) {
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 01b2ac6..af69a96 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -1144,7 +1144,7 @@ void drbd_make_request(struct request_queue *q, struct 
bio *bio)
/* to make some things easier, force alignment of requests within the
 * granularity of our hash tables */
s_enr = bio->bi_sector >> HT_SHIFT;
-   e_enr = bio->bi_size ? (bio->bi_sector+(bio->bi_size>>9)-1) >> HT_SHIFT 
: s_enr;
+   e_enr = (bio_end(bio) - 1) >> HT_SHIFT;
 
if (likely(s_enr == e_enr)) {
do {
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 2e7de7a..8df3216 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -901,7 +901,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device 
*pd)
pd->iosched.successive_reads += bio->bi_size >> 10;
else {
pd->iosched.successive_reads = 0;
-   pd->iosched.last_write = bio->bi_sector + 
bio_sectors(bio);
+   pd->iosched.last_write = bio_end(bio);
}
if (pd->iosched.successive_reads >= HI_SPEED_SWITCH) {
if (pd->read_speed == pd->write_speed) {
@@ -2454,7 +2454,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
zone = ZONE(bio->bi_sector, pd);
VPRINTK("pkt_make_request: start = %6llx stop = %6llx\n",
(unsigned long long)bio->bi_sector,
-   (unsigned long long)(bio->bi_sector + bio_sectors(bio)));
+   (unsigned long long)bio_end(bio));
 
/* Check if we have to split the bio */
{
@@ -2462,7 +2462,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
sector_t last_zone;
int first_sectors;
 
-   last_zone = ZONE(bio->bi_sector + bio_sectors(bio) - 1, pd);
+   last_zone = ZONE(bio_end(bio) - 1, pd);
if (last_zone != zone) {
BUG_ON(last_zone != zone + pd->settings.size);
first_sectors = last_zone - bio->bi_sector;
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index a087bf2..047dd08 100644
--- 

[PATCH v2 05/26] block: Add bio_end()

2012-10-15 Thread Kent Overstreet
Just a little convenience macro - main reason to add it now is preparing
for immutable bio vecs, it'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
---
 block/blk-core.c  |  2 +-
 block/cfq-iosched.c   |  7 ++-
 block/deadline-iosched.c  |  2 +-
 drivers/block/drbd/drbd_req.c |  2 +-
 drivers/block/pktcdvd.c   |  6 +++---
 drivers/md/dm-stripe.c|  2 +-
 drivers/md/dm-verity.c|  2 +-
 drivers/md/faulty.c   |  6 ++
 drivers/md/linear.c   |  3 +--
 drivers/md/raid1.c|  4 ++--
 drivers/md/raid5.c| 14 +++---
 drivers/s390/block/dcssblk.c  |  3 +--
 fs/btrfs/extent_io.c  |  3 +--
 fs/gfs2/lops.c|  2 +-
 include/linux/bio.h   |  1 +
 15 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 55c833c9..97511cb 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1557,7 +1557,7 @@ static void handle_bad_sector(struct bio *bio)
printk(KERN_INFO %s: rw=%ld, want=%Lu, limit=%Lu\n,
bdevname(bio-bi_bdev, b),
bio-bi_rw,
-   (unsigned long long)bio-bi_sector + bio_sectors(bio),
+   (unsigned long long)bio_end(bio),
(long long)(i_size_read(bio-bi_bdev-bd_inode)  9));
 
set_bit(BIO_EOF, bio-bi_flags);
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index fb52df9..8eae0f3 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1883,11 +1883,8 @@ cfq_find_rq_fmerge(struct cfq_data *cfqd, struct bio 
*bio)
return NULL;
 
cfqq = cic_to_cfqq(cic, cfq_bio_sync(bio));
-   if (cfqq) {
-   sector_t sector = bio-bi_sector + bio_sectors(bio);
-
-   return elv_rb_find(cfqq-sort_list, sector);
-   }
+   if (cfqq)
+   return elv_rb_find(cfqq-sort_list, bio_end(bio));
 
return NULL;
 }
diff --git a/block/deadline-iosched.c b/block/deadline-iosched.c
index 599b12e..a3b4df9 100644
--- a/block/deadline-iosched.c
+++ b/block/deadline-iosched.c
@@ -132,7 +132,7 @@ deadline_merge(struct request_queue *q, struct request 
**req, struct bio *bio)
 * check for front merge
 */
if (dd-front_merges) {
-   sector_t sector = bio-bi_sector + bio_sectors(bio);
+   sector_t sector = bio_end(bio);
 
__rq = elv_rb_find(dd-sort_list[bio_data_dir(bio)], sector);
if (__rq) {
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 01b2ac6..af69a96 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -1144,7 +1144,7 @@ void drbd_make_request(struct request_queue *q, struct 
bio *bio)
/* to make some things easier, force alignment of requests within the
 * granularity of our hash tables */
s_enr = bio-bi_sector  HT_SHIFT;
-   e_enr = bio-bi_size ? (bio-bi_sector+(bio-bi_size9)-1)  HT_SHIFT 
: s_enr;
+   e_enr = (bio_end(bio) - 1)  HT_SHIFT;
 
if (likely(s_enr == e_enr)) {
do {
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 2e7de7a..8df3216 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -901,7 +901,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device 
*pd)
pd-iosched.successive_reads += bio-bi_size  10;
else {
pd-iosched.successive_reads = 0;
-   pd-iosched.last_write = bio-bi_sector + 
bio_sectors(bio);
+   pd-iosched.last_write = bio_end(bio);
}
if (pd-iosched.successive_reads = HI_SPEED_SWITCH) {
if (pd-read_speed == pd-write_speed) {
@@ -2454,7 +2454,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
zone = ZONE(bio-bi_sector, pd);
VPRINTK(pkt_make_request: start = %6llx stop = %6llx\n,
(unsigned long long)bio-bi_sector,
-   (unsigned long long)(bio-bi_sector + bio_sectors(bio)));
+   (unsigned long long)bio_end(bio));
 
/* Check if we have to split the bio */
{
@@ -2462,7 +2462,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
sector_t last_zone;
int first_sectors;
 
-   last_zone = ZONE(bio-bi_sector + bio_sectors(bio) - 1, pd);
+   last_zone = ZONE(bio_end(bio) - 1, pd);
if (last_zone != zone) {
BUG_ON(last_zone != zone + pd-settings.size);
first_sectors = last_zone - bio-bi_sector;
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index a087bf2..047dd08 100644
--- 

Re: [PATCH v2 05/26] block: Add bio_end()

2012-09-20 Thread Kent Overstreet
On Thu, Sep 20, 2012 at 04:32:25PM -0700, Tejun Heo wrote:
> On Mon, Sep 10, 2012 at 05:22:16PM -0700, Kent Overstreet wrote:
> > Just a little convenience macro - main reason to add it now is preparing
> > for immutable bio vecs, it'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 
> > diff --git a/include/linux/bio.h b/include/linux/bio.h
> > index 6763cdf..92bff0e 100644
> > --- a/include/linux/bio.h
> > +++ b/include/linux/bio.h
> > @@ -67,6 +67,7 @@
> >  #define bio_offset(bio)bio_iovec((bio))->bv_offset
> >  #define bio_segments(bio)  ((bio)->bi_vcnt - (bio)->bi_idx)
> >  #define bio_sectors(bio)   ((bio)->bi_size >> 9)
> > +#define bio_end(bio)   ((bio)->bi_sector + bio_sectors(bio))
> 
> Maybe bio_end_sector() is a better name?  bio_end() looks a bit too
> close to bio_endio().

Bit verbose for my tastes, but I tend to be more terse than most :P I'm
used to bio_end(), but I'll probably change it.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 05/26] block: Add bio_end()

2012-09-20 Thread Tejun Heo
On Mon, Sep 10, 2012 at 05:22:16PM -0700, Kent Overstreet wrote:
> Just a little convenience macro - main reason to add it now is preparing
> for immutable bio vecs, it'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 
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index 6763cdf..92bff0e 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -67,6 +67,7 @@
>  #define bio_offset(bio)  bio_iovec((bio))->bv_offset
>  #define bio_segments(bio)((bio)->bi_vcnt - (bio)->bi_idx)
>  #define bio_sectors(bio) ((bio)->bi_size >> 9)
> +#define bio_end(bio) ((bio)->bi_sector + bio_sectors(bio))

Maybe bio_end_sector() is a better name?  bio_end() looks a bit too
close to bio_endio().

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 05/26] block: Add bio_end()

2012-09-20 Thread Tejun Heo
On Mon, Sep 10, 2012 at 05:22:16PM -0700, Kent Overstreet wrote:
 Just a little convenience macro - main reason to add it now is preparing
 for immutable bio vecs, it'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
 diff --git a/include/linux/bio.h b/include/linux/bio.h
 index 6763cdf..92bff0e 100644
 --- a/include/linux/bio.h
 +++ b/include/linux/bio.h
 @@ -67,6 +67,7 @@
  #define bio_offset(bio)  bio_iovec((bio))-bv_offset
  #define bio_segments(bio)((bio)-bi_vcnt - (bio)-bi_idx)
  #define bio_sectors(bio) ((bio)-bi_size  9)
 +#define bio_end(bio) ((bio)-bi_sector + bio_sectors(bio))

Maybe bio_end_sector() is a better name?  bio_end() looks a bit too
close to bio_endio().

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 05/26] block: Add bio_end()

2012-09-20 Thread Kent Overstreet
On Thu, Sep 20, 2012 at 04:32:25PM -0700, Tejun Heo wrote:
 On Mon, Sep 10, 2012 at 05:22:16PM -0700, Kent Overstreet wrote:
  Just a little convenience macro - main reason to add it now is preparing
  for immutable bio vecs, it'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
  diff --git a/include/linux/bio.h b/include/linux/bio.h
  index 6763cdf..92bff0e 100644
  --- a/include/linux/bio.h
  +++ b/include/linux/bio.h
  @@ -67,6 +67,7 @@
   #define bio_offset(bio)bio_iovec((bio))-bv_offset
   #define bio_segments(bio)  ((bio)-bi_vcnt - (bio)-bi_idx)
   #define bio_sectors(bio)   ((bio)-bi_size  9)
  +#define bio_end(bio)   ((bio)-bi_sector + bio_sectors(bio))
 
 Maybe bio_end_sector() is a better name?  bio_end() looks a bit too
 close to bio_endio().

Bit verbose for my tastes, but I tend to be more terse than most :P I'm
used to bio_end(), but I'll probably change it.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 05/26] block: Add bio_end()

2012-09-17 Thread Steven Whitehouse
Hi,

On Mon, 2012-09-10 at 17:22 -0700, Kent Overstreet wrote:
> Just a little convenience macro - main reason to add it now is preparing
> for immutable bio vecs, it'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 

GFS2 bits:
Acked-by: Steven Whitehouse 

Steve.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2 05/26] block: Add bio_end()

2012-09-17 Thread Steven Whitehouse
Hi,

On Mon, 2012-09-10 at 17:22 -0700, Kent Overstreet wrote:
 Just a little convenience macro - main reason to add it now is preparing
 for immutable bio vecs, it'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

GFS2 bits:
Acked-by: Steven Whitehouse swhit...@redhat.com

Steve.


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2 05/26] block: Add bio_end()

2012-09-10 Thread Kent Overstreet
Just a little convenience macro - main reason to add it now is preparing
for immutable bio vecs, it'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 
---
 block/blk-core.c  |  2 +-
 block/cfq-iosched.c   |  7 ++-
 block/deadline-iosched.c  |  2 +-
 drivers/block/drbd/drbd_req.c |  2 +-
 drivers/block/pktcdvd.c   |  6 +++---
 drivers/md/dm-stripe.c|  2 +-
 drivers/md/dm-verity.c|  2 +-
 drivers/md/faulty.c   |  6 ++
 drivers/md/linear.c   |  3 +--
 drivers/md/raid1.c|  4 ++--
 drivers/md/raid5.c| 14 +++---
 drivers/s390/block/dcssblk.c  |  3 +--
 fs/btrfs/extent_io.c  |  3 +--
 fs/gfs2/lops.c|  2 +-
 include/linux/bio.h   |  1 +
 15 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 55c833c9..97511cb 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1557,7 +1557,7 @@ static void handle_bad_sector(struct bio *bio)
printk(KERN_INFO "%s: rw=%ld, want=%Lu, limit=%Lu\n",
bdevname(bio->bi_bdev, b),
bio->bi_rw,
-   (unsigned long long)bio->bi_sector + bio_sectors(bio),
+   (unsigned long long)bio_end(bio),
(long long)(i_size_read(bio->bi_bdev->bd_inode) >> 9));
 
set_bit(BIO_EOF, >bi_flags);
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index fb52df9..8eae0f3 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1883,11 +1883,8 @@ cfq_find_rq_fmerge(struct cfq_data *cfqd, struct bio 
*bio)
return NULL;
 
cfqq = cic_to_cfqq(cic, cfq_bio_sync(bio));
-   if (cfqq) {
-   sector_t sector = bio->bi_sector + bio_sectors(bio);
-
-   return elv_rb_find(>sort_list, sector);
-   }
+   if (cfqq)
+   return elv_rb_find(>sort_list, bio_end(bio));
 
return NULL;
 }
diff --git a/block/deadline-iosched.c b/block/deadline-iosched.c
index 599b12e..a3b4df9 100644
--- a/block/deadline-iosched.c
+++ b/block/deadline-iosched.c
@@ -132,7 +132,7 @@ deadline_merge(struct request_queue *q, struct request 
**req, struct bio *bio)
 * check for front merge
 */
if (dd->front_merges) {
-   sector_t sector = bio->bi_sector + bio_sectors(bio);
+   sector_t sector = bio_end(bio);
 
__rq = elv_rb_find(>sort_list[bio_data_dir(bio)], sector);
if (__rq) {
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 01b2ac6..af69a96 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -1144,7 +1144,7 @@ void drbd_make_request(struct request_queue *q, struct 
bio *bio)
/* to make some things easier, force alignment of requests within the
 * granularity of our hash tables */
s_enr = bio->bi_sector >> HT_SHIFT;
-   e_enr = bio->bi_size ? (bio->bi_sector+(bio->bi_size>>9)-1) >> HT_SHIFT 
: s_enr;
+   e_enr = (bio_end(bio) - 1) >> HT_SHIFT;
 
if (likely(s_enr == e_enr)) {
do {
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 2e7de7a..8df3216 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -901,7 +901,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device 
*pd)
pd->iosched.successive_reads += bio->bi_size >> 10;
else {
pd->iosched.successive_reads = 0;
-   pd->iosched.last_write = bio->bi_sector + 
bio_sectors(bio);
+   pd->iosched.last_write = bio_end(bio);
}
if (pd->iosched.successive_reads >= HI_SPEED_SWITCH) {
if (pd->read_speed == pd->write_speed) {
@@ -2454,7 +2454,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
zone = ZONE(bio->bi_sector, pd);
VPRINTK("pkt_make_request: start = %6llx stop = %6llx\n",
(unsigned long long)bio->bi_sector,
-   (unsigned long long)(bio->bi_sector + bio_sectors(bio)));
+   (unsigned long long)bio_end(bio));
 
/* Check if we have to split the bio */
{
@@ -2462,7 +2462,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
sector_t last_zone;
int first_sectors;
 
-   last_zone = ZONE(bio->bi_sector + bio_sectors(bio) - 1, pd);
+   last_zone = ZONE(bio_end(bio) - 1, pd);
if (last_zone != zone) {
BUG_ON(last_zone != zone + pd->settings.size);
first_sectors = last_zone - bio->bi_sector;
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index a087bf2..047dd08 100644
--- 

[PATCH v2 05/26] block: Add bio_end()

2012-09-10 Thread Kent Overstreet
Just a little convenience macro - main reason to add it now is preparing
for immutable bio vecs, it'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
---
 block/blk-core.c  |  2 +-
 block/cfq-iosched.c   |  7 ++-
 block/deadline-iosched.c  |  2 +-
 drivers/block/drbd/drbd_req.c |  2 +-
 drivers/block/pktcdvd.c   |  6 +++---
 drivers/md/dm-stripe.c|  2 +-
 drivers/md/dm-verity.c|  2 +-
 drivers/md/faulty.c   |  6 ++
 drivers/md/linear.c   |  3 +--
 drivers/md/raid1.c|  4 ++--
 drivers/md/raid5.c| 14 +++---
 drivers/s390/block/dcssblk.c  |  3 +--
 fs/btrfs/extent_io.c  |  3 +--
 fs/gfs2/lops.c|  2 +-
 include/linux/bio.h   |  1 +
 15 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 55c833c9..97511cb 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1557,7 +1557,7 @@ static void handle_bad_sector(struct bio *bio)
printk(KERN_INFO %s: rw=%ld, want=%Lu, limit=%Lu\n,
bdevname(bio-bi_bdev, b),
bio-bi_rw,
-   (unsigned long long)bio-bi_sector + bio_sectors(bio),
+   (unsigned long long)bio_end(bio),
(long long)(i_size_read(bio-bi_bdev-bd_inode)  9));
 
set_bit(BIO_EOF, bio-bi_flags);
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index fb52df9..8eae0f3 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1883,11 +1883,8 @@ cfq_find_rq_fmerge(struct cfq_data *cfqd, struct bio 
*bio)
return NULL;
 
cfqq = cic_to_cfqq(cic, cfq_bio_sync(bio));
-   if (cfqq) {
-   sector_t sector = bio-bi_sector + bio_sectors(bio);
-
-   return elv_rb_find(cfqq-sort_list, sector);
-   }
+   if (cfqq)
+   return elv_rb_find(cfqq-sort_list, bio_end(bio));
 
return NULL;
 }
diff --git a/block/deadline-iosched.c b/block/deadline-iosched.c
index 599b12e..a3b4df9 100644
--- a/block/deadline-iosched.c
+++ b/block/deadline-iosched.c
@@ -132,7 +132,7 @@ deadline_merge(struct request_queue *q, struct request 
**req, struct bio *bio)
 * check for front merge
 */
if (dd-front_merges) {
-   sector_t sector = bio-bi_sector + bio_sectors(bio);
+   sector_t sector = bio_end(bio);
 
__rq = elv_rb_find(dd-sort_list[bio_data_dir(bio)], sector);
if (__rq) {
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 01b2ac6..af69a96 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -1144,7 +1144,7 @@ void drbd_make_request(struct request_queue *q, struct 
bio *bio)
/* to make some things easier, force alignment of requests within the
 * granularity of our hash tables */
s_enr = bio-bi_sector  HT_SHIFT;
-   e_enr = bio-bi_size ? (bio-bi_sector+(bio-bi_size9)-1)  HT_SHIFT 
: s_enr;
+   e_enr = (bio_end(bio) - 1)  HT_SHIFT;
 
if (likely(s_enr == e_enr)) {
do {
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 2e7de7a..8df3216 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -901,7 +901,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device 
*pd)
pd-iosched.successive_reads += bio-bi_size  10;
else {
pd-iosched.successive_reads = 0;
-   pd-iosched.last_write = bio-bi_sector + 
bio_sectors(bio);
+   pd-iosched.last_write = bio_end(bio);
}
if (pd-iosched.successive_reads = HI_SPEED_SWITCH) {
if (pd-read_speed == pd-write_speed) {
@@ -2454,7 +2454,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
zone = ZONE(bio-bi_sector, pd);
VPRINTK(pkt_make_request: start = %6llx stop = %6llx\n,
(unsigned long long)bio-bi_sector,
-   (unsigned long long)(bio-bi_sector + bio_sectors(bio)));
+   (unsigned long long)bio_end(bio));
 
/* Check if we have to split the bio */
{
@@ -2462,7 +2462,7 @@ static void pkt_make_request(struct request_queue *q, 
struct bio *bio)
sector_t last_zone;
int first_sectors;
 
-   last_zone = ZONE(bio-bi_sector + bio_sectors(bio) - 1, pd);
+   last_zone = ZONE(bio_end(bio) - 1, pd);
if (last_zone != zone) {
BUG_ON(last_zone != zone + pd-settings.size);
first_sectors = last_zone - bio-bi_sector;
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index a087bf2..047dd08 100644
---