From: Christoph Hellwig Date: Wed, 3 Jan 2024 08:16:22 +0000 (+0000) Subject: block: floor the discard granularity to the physical block size X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=458aa1a09939a56e044768013c86b5ef06e1c4f1;p=linux.git block: floor the discard granularity to the physical block size Discarding less than a physical block doesn't make sense. This fixes the existing behavior for zram before the recent changes to default the discard granularity to the logical block size, and is also a generally useful sanity check. Fixes: 3753039def5d ("zram: use the default discard granularity") Reported-by: Sergey Senozhatsky Signed-off-by: Christoph Hellwig Link: https://lore.kernel.org/r/20240103081622.508754-1-hch@lst.de Signed-off-by: Jens Axboe --- diff --git a/block/blk-settings.c b/block/blk-settings.c index d993d20dab3c6..06ea91e51b8b2 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -342,6 +342,9 @@ void blk_queue_physical_block_size(struct request_queue *q, unsigned int size) if (q->limits.physical_block_size < q->limits.logical_block_size) q->limits.physical_block_size = q->limits.logical_block_size; + if (q->limits.discard_granularity < q->limits.physical_block_size) + q->limits.discard_granularity = q->limits.physical_block_size; + if (q->limits.io_min < q->limits.physical_block_size) q->limits.io_min = q->limits.physical_block_size; }