From 0f9457d1dd7a56ceccda962433281ef946132b5f Mon Sep 17 00:00:00 2001 From: Ameer Hamza Date: Tue, 20 Aug 2024 01:30:57 +0500 Subject: [PATCH] linux/zvol_os.c: Fix max_discard_sectors limit for 6.8+ kernel In kernels 6.8 and later, the zvol block device is allocated with qlimits passed during initialization. However, the zvol driver does not set `max_hw_discard_sectors`, which is necessary to properly initialize `max_discard_sectors`. This causes the `zvol_misc_trim` test to fail on 6.8+ kernels when invoking the `blkdiscard` command. Setting `max_hw_discard_sectors` in the `HAVE_BLK_ALLOC_DISK_2ARG` case resolve the issue. Reviewed-by: Brian Behlendorf Reviewed-by: Tony Hutter Reviewed-by: Rob Norris Signed-off-by: Ameer Hamza Closes #16462 --- module/os/linux/zfs/zvol_os.c | 1 + 1 file changed, 1 insertion(+) diff --git a/module/os/linux/zfs/zvol_os.c b/module/os/linux/zfs/zvol_os.c index a4a710cb92..b8507eef0c 100644 --- a/module/os/linux/zfs/zvol_os.c +++ b/module/os/linux/zfs/zvol_os.c @@ -1169,6 +1169,7 @@ zvol_queue_limits_convert(zvol_queue_limits_t *limits, qlimits->io_opt = limits->zql_io_opt; qlimits->physical_block_size = limits->zql_physical_block_size; qlimits->max_discard_sectors = limits->zql_max_discard_sectors; + qlimits->max_hw_discard_sectors = limits->zql_max_discard_sectors; qlimits->discard_granularity = limits->zql_discard_granularity; #ifdef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES qlimits->features =