Jinyoung, > In the case of NVMe, it has an integrity payload consisting of one > segment. So, rather than configuring SG_LIST, it was changed by direct > DMA mapping. > > The page-merge is not performed for the struct bio_vec when creating a > integrity payload in block. As a result, when creating an integrity > paylaod beyond one page, each struct bio_vec is generated, and its > bv_len does not exceed the PAGESIZE. > > To solve it, bio_integrity_add_page() should just add to the existing > bvec, similar to bio_add_page() and friends. This looks OK to me. I'll test on physical SCSI hardware tomorrow to make sure there are no regressions. Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx> -- Martin K. Petersen Oracle Linux Engineering