@@ -217,7 +217,6 @@ bool blk_integrity_merge_bio(struct request_queue *q, struct request *req,
struct bio *bio)
{
int nr_integrity_segs;
- struct bio *next = bio->bi_next;
if (blk_integrity_bypass_check(req, bio))
return true;
@@ -225,9 +224,7 @@ bool blk_integrity_merge_bio(struct request_queue *q, struct request *req,
if (!__blk_integrity_mergeable(q, req, bio))
return false;
- bio->bi_next = NULL;
- nr_integrity_segs = blk_rq_count_integrity_sg(q, bio);
- bio->bi_next = next;
+ nr_integrity_segs = bio_integrity(bio)->bip_vcnt;
if (req->nr_integrity_segments + nr_integrity_segs >
q->limits.max_integrity_segments)
The method of constructing a bip has been changed, the number of segments can be obtained through bip_vcnt. Cc: Christoph Hellwig <hch@lst.de> Cc: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Jinyoung Choi <j-young.choi@samsung.com> --- block/blk-integrity.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)