[Devel] [PATCH VZ10] dm-qcow2: set max_hw_discard sectors during qcow2_io_hints

Vasileios Almpanis vasileios.almpanis at virtuozzo.com
Fri Sep 12 14:41:31 MSK 2025


BLKDISCARD and FITRIM ioctl calls were being rejected
with -EOPNOTSUPP because bdev's max_discard_sectors
was set to 0. blk_validate_limits sets max_discard_sectors
to the minimum value between max_user_discard_sectors and
max_hw_discard_sectors. In our case max_hw_discard_sectors
was not set.

https://virtuozzo.atlassian.net/browse/VSTOR-113920
Signed-off-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>

Feature: dm-qcow2: Re-enable discard support.
---
 drivers/md/dm-qcow2-target.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/dm-qcow2-target.c b/drivers/md/dm-qcow2-target.c
index d1b54d8f883e..90f315315976 100644
--- a/drivers/md/dm-qcow2-target.c
+++ b/drivers/md/dm-qcow2-target.c
@@ -1047,7 +1047,7 @@ static void qcow2_io_hints(struct dm_target *ti, struct queue_limits *limits)
 	 * we can free a block on filesystem.
 	 */
 	limits->discard_granularity = sb->s_blocksize;
-	limits->max_discard_sectors = to_sector(qcow2->clu_size);
+	limits->max_hw_discard_sectors = to_sector(qcow2->clu_size);
 
 	limits->logical_block_size = block_size;
 	limits->physical_block_size = block_size;
-- 
2.43.0



More information about the Devel mailing list