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;
}