dm: split discards further if target sets max_discard_granularity
authorMike Snitzer <snitzer@kernel.org>
Wed, 1 Mar 2023 17:48:43 +0000 (12:48 -0500)
committerMike Snitzer <snitzer@kernel.org>
Thu, 30 Mar 2023 19:57:50 +0000 (15:57 -0400)
commit06961c487a33a222fd3d84998dc6398ed0449373
treece2512c7db900e8f3a92fc1e13502162701ba079
parentbb46c56165faf284cf42c197317bff24f899835a
dm: split discards further if target sets max_discard_granularity

The block core (bio_split_discard) will already split discards based
on the 'discard_granularity' and 'max_discard_sectors' queue_limits.
But the DM thin target also needs to ensure that it doesn't receive a
discard that spans a 'max_discard_sectors' boundary.

Introduce a dm_target 'max_discard_granularity' flag that if set will
cause DM core to split discard bios relative to 'max_discard_sectors'.
This treats 'discard_granularity' as a "min_discard_granularity" and
'max_discard_sectors' as a "max_discard_granularity".

Requested-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/dm.c
include/linux/device-mapper.h
include/uapi/linux/dm-ioctl.h