| From 578270bfbd2803dc7b0b03fbc2ac119efbc73195 Mon Sep 17 00:00:00 2001 |
| From: Ming Lei <ming.lei@canonical.com> |
| Date: Tue, 24 Nov 2015 10:35:29 +0800 |
| Subject: block: fix segment split |
| |
| From: Ming Lei <ming.lei@canonical.com> |
| |
| commit 578270bfbd2803dc7b0b03fbc2ac119efbc73195 upstream. |
| |
| Inside blk_bio_segment_split(), previous bvec pointer(bvprvp) |
| always points to the iterator local variable, which is obviously |
| wrong, so fix it by pointing to the local variable of 'bvprv'. |
| |
| Fixes: 5014c311baa2b(block: fix bogus compiler warnings in blk-merge.c) |
| Reported-by: Michael Ellerman <mpe@ellerman.id.au> |
| Reported-by: Mark Salter <msalter@redhat.com> |
| Tested-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> |
| Tested-by: Mark Salter <msalter@redhat.com> |
| Signed-off-by: Ming Lei <ming.lei@canonical.com> |
| Signed-off-by: Jens Axboe <axboe@fb.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| block/blk-merge.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/block/blk-merge.c |
| +++ b/block/blk-merge.c |
| @@ -91,7 +91,7 @@ static struct bio *blk_bio_segment_split |
| |
| seg_size += bv.bv_len; |
| bvprv = bv; |
| - bvprvp = &bv; |
| + bvprvp = &bvprv; |
| sectors += bv.bv_len >> 9; |
| continue; |
| } |
| @@ -101,7 +101,7 @@ new_segment: |
| |
| nsegs++; |
| bvprv = bv; |
| - bvprvp = &bv; |
| + bvprvp = &bvprv; |
| seg_size = bv.bv_len; |
| sectors += bv.bv_len >> 9; |
| } |