Skip to content

Commit f5236fe

Browse files
robnbehlendorf
authored andcommitted
Linux 6.11: add more queue_limit fields with removed setters
These fields are very old, so no detection necessary; we just move them into the limit setup functions. Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rob Norris <[email protected]> Sponsored-by: https://despairlabs.com/sponsor/ Closes #16400
1 parent 0b741a0 commit f5236fe

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

module/os/linux/zfs/zvol_os.c

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,6 +1123,9 @@ typedef struct zvol_queue_limits {
11231123
unsigned short zql_max_segments;
11241124
unsigned int zql_max_segment_size;
11251125
unsigned int zql_io_opt;
1126+
unsigned int zql_physical_block_size;
1127+
unsigned int zql_max_discard_sectors;
1128+
unsigned int zql_discard_granularity;
11261129
} zvol_queue_limits_t;
11271130

11281131
static void
@@ -1191,6 +1194,11 @@ zvol_queue_limits_init(zvol_queue_limits_t *limits, zvol_state_t *zv,
11911194
}
11921195

11931196
limits->zql_io_opt = zv->zv_volblocksize;
1197+
1198+
limits->zql_physical_block_size = zv->zv_volblocksize;
1199+
limits->zql_max_discard_sectors =
1200+
(zvol_max_discard_blocks * zv->zv_volblocksize) >> 9;
1201+
limits->zql_discard_granularity = zv->zv_volblocksize;
11941202
}
11951203

11961204
#ifdef HAVE_BLK_ALLOC_DISK_2ARG
@@ -1203,6 +1211,9 @@ zvol_queue_limits_convert(zvol_queue_limits_t *limits,
12031211
qlimits->max_segments = limits->zql_max_segments;
12041212
qlimits->max_segment_size = limits->zql_max_segment_size;
12051213
qlimits->io_opt = limits->zql_io_opt;
1214+
qlimits->physical_block_size = limits->zql_physical_block_size;
1215+
qlimits->max_discard_sectors = limits->zql_max_discard_sectors;
1216+
qlimits->discard_granularity = limits->zql_discard_granularity;
12061217
#ifdef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES
12071218
qlimits->features =
12081219
BLK_FEAT_WRITE_CACHE | BLK_FEAT_FUA | BLK_FEAT_IO_STAT;
@@ -1219,6 +1230,10 @@ zvol_queue_limits_apply(zvol_queue_limits_t *limits,
12191230
blk_queue_max_segments(queue, limits->zql_max_segments);
12201231
blk_queue_max_segment_size(queue, limits->zql_max_segment_size);
12211232
blk_queue_io_opt(queue, limits->zql_io_opt);
1233+
blk_queue_physical_block_size(queue, limits->zql_physical_block_size);
1234+
blk_queue_max_discard_sectors(queue, limits->zql_max_discard_sectors);
1235+
blk_queue_discard_granularity(queue, limits->zql_discard_granularity);
1236+
#endif
12221237
#ifndef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES
12231238
blk_queue_set_write_cache(queue, B_TRUE);
12241239
blk_queue_flag_set(QUEUE_FLAG_IO_STAT, queue);
@@ -1677,14 +1692,6 @@ zvol_os_create_minor(const char *name)
16771692

16781693
set_capacity(zv->zv_zso->zvo_disk, zv->zv_volsize >> 9);
16791694

1680-
1681-
1682-
blk_queue_physical_block_size(zv->zv_zso->zvo_queue,
1683-
zv->zv_volblocksize);
1684-
blk_queue_max_discard_sectors(zv->zv_zso->zvo_queue,
1685-
(zvol_max_discard_blocks * zv->zv_volblocksize) >> 9);
1686-
blk_queue_discard_granularity(zv->zv_zso->zvo_queue,
1687-
zv->zv_volblocksize);
16881695
#ifdef QUEUE_FLAG_DISCARD
16891696
blk_queue_flag_set(QUEUE_FLAG_DISCARD, zv->zv_zso->zvo_queue);
16901697
#endif

0 commit comments

Comments
 (0)