block: remove the segment size check in bio_will_gap
We fundamentally do not have a maximum segement size for devices with a virt boundary. So don't bother checking it, especially given that the existing checks didn't properly work to start with as we never fully update the front/back segment size and miss the bi_seg_front_size that wuld have been required for some cases. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
09324d32d2
Коммит
200a9aff7b
|
@ -12,23 +12,6 @@
|
|||
|
||||
#include "blk.h"
|
||||
|
||||
/*
|
||||
* Check if the two bvecs from two bios can be merged to one segment. If yes,
|
||||
* no need to check gap between the two bios since the 1st bio and the 1st bvec
|
||||
* in the 2nd bio can be handled in one segment.
|
||||
*/
|
||||
static inline bool bios_segs_mergeable(struct request_queue *q,
|
||||
struct bio *prev, struct bio_vec *prev_last_bv,
|
||||
struct bio_vec *next_first_bv)
|
||||
{
|
||||
if (!biovec_phys_mergeable(q, prev_last_bv, next_first_bv))
|
||||
return false;
|
||||
if (prev->bi_seg_back_size + next_first_bv->bv_len >
|
||||
queue_max_segment_size(q))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline bool bio_will_gap(struct request_queue *q,
|
||||
struct request *prev_rq, struct bio *prev, struct bio *next)
|
||||
{
|
||||
|
@ -60,7 +43,7 @@ static inline bool bio_will_gap(struct request_queue *q,
|
|||
*/
|
||||
bio_get_last_bvec(prev, &pb);
|
||||
bio_get_first_bvec(next, &nb);
|
||||
if (bios_segs_mergeable(q, prev, &pb, &nb))
|
||||
if (biovec_phys_mergeable(q, &pb, &nb))
|
||||
return false;
|
||||
return __bvec_gap_to_prev(q, &pb, nb.bv_offset);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче