On 08/02/2019 16:52, Mikulas Patocka wrote: > bio_sectors returns the value in the units of 512-byte sectors (no matter > what's the real sector size of the device). dm-crypt multiplies > bio_sectors by on_disk_tag_size to calculate the space allocated for > integrity tags. If dm-crypt is running with sector size larger than 512, > it allocates more data than what's needed. > > Device mapper trimmed this extra space when passing the bio to > dm-integrity, so this bug didn't result in any visible misbehavior. This > bug showed up when device mapper stopped trimming the bio. > > Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> > Reported-by: Milan Broz <mbroz@xxxxxxxxxx> > > --- > drivers/md/dm-crypt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: linux-2.6/drivers/md/dm-crypt.c > =================================================================== > --- linux-2.6.orig/drivers/md/dm-crypt.c 2019-02-08 14:12:19.000000000 +0100 > +++ linux-2.6/drivers/md/dm-crypt.c 2019-02-08 14:12:19.000000000 +0100 > @@ -932,7 +932,7 @@ static int dm_crypt_integrity_io_alloc(s > if (IS_ERR(bip)) > return PTR_ERR(bip); > > - tag_len = io->cc->on_disk_tag_size * bio_sectors(bio); > + tag_len = io->cc->on_disk_tag_size * (bio_sectors(bio) >> io->cc->sector_shift); > > bip->bip_iter.bi_size = tag_len; > bip->bip_iter.bi_sector = io->cc->start + io->sector; > Yes, this was the problem (perhaps introduced by me since the first commit implementing authenticated encryption). With patch above even the bio_trim() works properly. Tested-and-Reviewed-by: Milan Broz <gmazyland@xxxxxxxxx> Thanks! Milan -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel