Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4f0cca3 authored by Ming Lei's avatar Ming Lei Committed by Greg Kroah-Hartman
Browse files

block: get the 1st and last bvec via helpers



commit 25e71a99f10e444cd00bb2ebccb11e1c9fb672b1 upstream.

This patch applies the two introduced helpers to
figure out the 1st and last bvec, and fixes the
original way after bio splitting.

Reported-by: default avatarSagi Grimberg <sagig@dev.mellanox.co.il>
Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0528bdbc
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1389,11 +1389,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)