On Sat, 5 Aug 2017, Martin K. Petersen wrote: > Mikulas, > > > The sector number in the integrity tag must match the physical sector > > number. So, it must be verified at the bottom. > > The ref tag seed matches the submitter block number (typically block > layer sector for the top device) and is remapped to and from the LBA by > the SCSI disk driver or HBA firmware. > > So the verification is designed to be done by the top level entity that > attaches the protection information to the bio. In this case > bio_integrity_prep(). bio_integrity_prep is called by blk_queue_bio - that is the lowest level physical disk, not the top level. It is not called by device mapper. Documentation/block/data-integrity.txt says that bio_integrity_prep() can be called by integrity-aware filesystem, but it seems that no such filesystem exists. If you create the integrity tag at or above device mapper level, you will run into problems because the same device can be accessed using device mapper and using physical volume /dev/sd*. If you create integrity tags at device mapper level, they will contain device mapper's logical sector number and the sector number won't match if you access the device directly using /dev/sd*. > -- > Martin K. Petersen Oracle Linux Engineering Mikulas -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel