[Devel] [PATCH RHEL10 COMMIT] dm-qcow2: set max_hw_discard_sectors during qcow2_io_hints
Konstantin Khorenko
khorenko at virtuozzo.com
Mon Sep 15 14:41:35 MSK 2025
The commit is pushed to "branch-rh10-6.12.0-55.13.1.2.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-55.13.1.2.5.vz10
------>
commit 70316aa5df397509c6f2328e65ea0d3460d11560
Author: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>
Date: Fri Sep 12 11:41:31 2025 +0000
dm-qcow2: set max_hw_discard_sectors during qcow2_io_hints
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.
Note: setting max_discard_sectors is useless, blk_validate_limits() is
always called after .io_hints() (qcow2_io_hints() as an example) and
overwrites max_discard_sectors value.
https://virtuozzo.atlassian.net/browse/VSTOR-113920
Signed-off-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>
Feature: dm-qcow2: block device over QCOW2 files driver
---
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;
More information about the Devel
mailing list