On Mon, May 20, 2024 at 10:12:37PM +0200, Christoph Hellwig wrote: > On Mon, May 20, 2024 at 01:17:46PM -0400, Mike Snitzer wrote: > > Doubt there was anything in fstests setting max discard user limit > > (max_user_discard_sectors) in Ted's case. blk_set_stacking_limits() > > sets max_user_discard_sectors to UINT_MAX, so given the use of > > min(lim->max_hw_discard_sectors, lim->max_user_discard_sectors) I > > suspect blk_stack_limits() stacks up max_discard_sectors to match the > > underlying storage's max_hw_discard_sectors. > > > > And max_hw_discard_sectors exceeds BIO_PRISON_MAX_RANGE, resulting in > > dm_cell_key_has_valid_range() triggering on: > > WARN_ON_ONCE(key->block_end - key->block_begin > BIO_PRISON_MAX_RANGE) > > Oh, that makes more sense. > > I think you just want to set the max_hw_discard_sectors limit before > stacking in the lower device limits so that they can only lower it. > > (and in the long run we should just stop stacking the limits except > for request based dm which really needs it) This is what I staged, I cannot send a patch out right now.. Ted if you need the patch in email (rather than from linux-dm.git) I can send it later tonight. Please see: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-6.10&id=825d8bbd2f32cb229c3b6653bd454832c3c20acb