]> www.infradead.org Git - users/dwmw2/linux.git/commit
block: pre-calculate max_zone_append_sectors
authorChristoph Hellwig <hch@lst.de>
Fri, 8 Nov 2024 15:46:51 +0000 (16:46 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 11 Nov 2024 16:20:36 +0000 (09:20 -0700)
commit559218d43ec9dde3d2847c7aa127e88d6ab1c9ed
treec17616ebdb0586770eb78eaf26ca136abb89b12b
parent0ef2b9e698dbf9ba78f67952a747f35eb7060470
block: pre-calculate max_zone_append_sectors

max_zone_append_sectors differs from all other queue limits in that the
final value used is not stored in the queue_limits but needs to be
obtained using queue_limits_max_zone_append_sectors helper.  This not
only adds (tiny) extra overhead to the I/O path, but also can be easily
forgotten in file system code.

Add a new max_hw_zone_append_sectors value to queue_limits which is
set by the driver, and calculate max_zone_append_sectors from that and
the other inputs in blk_validate_zoned_limits, similar to how
max_sectors is calculated to fix this.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20241104073955.112324-3-hch@lst.de
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20241108154657.845768-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 files changed:
block/blk-core.c
block/blk-merge.c
block/blk-settings.c
block/blk-sysfs.c
drivers/block/null_blk/zoned.c
drivers/block/ublk_drv.c
drivers/block/virtio_blk.c
drivers/md/dm-zone.c
drivers/nvme/host/multipath.c
drivers/nvme/host/zns.c
drivers/scsi/sd_zbc.c
include/linux/blkdev.h