Hi I accepted all three patches.
Mikulas On Wed, 25 Mar 2026, Keith Busch wrote: > From: Keith Busch <[email protected]> > > A user can integritysetup a device with a backing device using a 4k > logical block size, but request the dm device use 1k or 2k. This > mismatch creates an inconsistency such that the dm device would report > limits for IO that it can't actually execute. Fix this by using the > backing device's limits if they are larger. > > Signed-off-by: Keith Busch <[email protected]> > --- > drivers/md/dm-integrity.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c > index 06e805902151c..8dfd498ed1ffd 100644 > --- a/drivers/md/dm-integrity.c > +++ b/drivers/md/dm-integrity.c > @@ -4047,9 +4047,15 @@ static void dm_integrity_io_hints(struct dm_target > *ti, struct queue_limits *lim > struct dm_integrity_c *ic = ti->private; > > if (ic->sectors_per_block > 1) { > - limits->logical_block_size = ic->sectors_per_block << > SECTOR_SHIFT; > - limits->physical_block_size = ic->sectors_per_block << > SECTOR_SHIFT; > - limits->io_min = ic->sectors_per_block << SECTOR_SHIFT; > + limits->logical_block_size = > + max(limits->logical_block_size, > + ic->sectors_per_block << SECTOR_SHIFT); > + limits->physical_block_size = > + max(limits->physical_block_size, > + ic->sectors_per_block << SECTOR_SHIFT); > + limits->io_min = > + max(limits->io_min, > + ic->sectors_per_block << SECTOR_SHIFT); > limits->dma_alignment = limits->logical_block_size - 1; > limits->discard_granularity = ic->sectors_per_block << > SECTOR_SHIFT; > } > -- > 2.52.0 >
