Skip to content

Commit

Permalink
block: get the 1st and last bvec via helpers
Browse files Browse the repository at this point in the history
This patch applies the two introduced helpers to
figure out the 1st and last bvec, and fixes the
original way after bio splitting.

Cc: stable@vger.kernel.org
Reported-by: Sagi Grimberg <sagig@dev.mellanox.co.il>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
  • Loading branch information
Ming Lei authored and Jens Axboe committed Mar 3, 2016
1 parent e0af291 commit 25e71a9
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions include/linux/blkdev.h
Original file line number Diff line number Diff line change
Expand Up @@ -1394,11 +1394,16 @@ static inline bool bvec_gap_to_prev(struct request_queue *q,
static inline bool bio_will_gap(struct request_queue *q, struct bio *prev,
struct bio *next)
{
if (!bio_has_data(prev) || !queue_virt_boundary(q))
return false;
if (bio_has_data(prev) && queue_virt_boundary(q)) {
struct bio_vec pb, nb;

bio_get_last_bvec(prev, &pb);
bio_get_first_bvec(next, &nb);

return __bvec_gap_to_prev(q, &prev->bi_io_vec[prev->bi_vcnt - 1],
next->bi_io_vec[0].bv_offset);
return __bvec_gap_to_prev(q, &pb, nb.bv_offset);
}

return false;
}

static inline bool req_gap_back_merge(struct request *req, struct bio *bio)
Expand Down

0 comments on commit 25e71a9

Please sign in to comment.