lkml.org 
[lkml]   [2012]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 05/26] md: Convert md_trim_bio() to use bio_advance()
On Mon, 24 Sep 2012 15:34:45 -0700 Kent Overstreet <koverstreet@google.com>
wrote:

> Signed-off-by: Kent Overstreet <koverstreet@google.com>
> CC: Jens Axboe <axboe@kernel.dk>
> CC: NeilBrown <neilb@suse.de>
> ---
> drivers/md/md.c | 19 +++++--------------
> 1 file changed, 5 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index 7a2b079..51ce48c 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -190,25 +190,16 @@ void md_trim_bio(struct bio *bio, int offset, int size)
> struct bio_vec *bvec;
> int sofar = 0;
>
> - size <<= 9;
> if (offset == 0 && size == bio->bi_size)
> return;

Safer to leave the "size <<= 9" where it is, otherwise that condition will
always fail.

Otherwise,
Acked-by: NeilBrown <neilb@suse.de>

NeilBrown


>
> - bio->bi_sector += offset;
> - bio->bi_size = size;
> - offset <<= 9;
> clear_bit(BIO_SEG_VALID, &bio->bi_flags);
>
> - while (bio->bi_idx < bio->bi_vcnt &&
> - bio->bi_io_vec[bio->bi_idx].bv_len <= offset) {
> - /* remove this whole bio_vec */
> - offset -= bio->bi_io_vec[bio->bi_idx].bv_len;
> - bio->bi_idx++;
> - }
> - if (bio->bi_idx < bio->bi_vcnt) {
> - bio->bi_io_vec[bio->bi_idx].bv_offset += offset;
> - bio->bi_io_vec[bio->bi_idx].bv_len -= offset;
> - }
> + bio_advance(bio, offset << 9);
> +
> + size <<= 9;
> + bio->bi_size = size;
> +
> /* avoid any complications with bi_idx being non-zero*/
> if (bio->bi_idx) {
> memmove(bio->bi_io_vec, bio->bi_io_vec+bio->bi_idx,

[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2012-09-26 03:21    [W:1.675 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site