]> git.itanic.dy.fi Git - linux-stable/commitdiff
bcache: discard_granularity should not be smaller than a sector
authorChristoph Hellwig <hch@lst.de>
Thu, 28 Dec 2023 07:55:38 +0000 (07:55 +0000)
committerJens Axboe <axboe@kernel.dk>
Fri, 29 Dec 2023 15:44:12 +0000 (08:44 -0700)
Just like all block I/O, discards are in units of sectors.  Thus setting a
smaller than sector size discard limit in case of > 512 byte sectors in
bcache doesn't make sense.  Always set the discard granularity to 512
bytes instead.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20231228075545.362768-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/super.c

index bfe1685dbae5748feafceb1ea7d98572a11e7c76..ecc1447f202a4200a7f31f1eb5b12c60afbb2726 100644 (file)
@@ -954,7 +954,7 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
        q->limits.max_segment_size      = UINT_MAX;
        q->limits.max_segments          = BIO_MAX_VECS;
        blk_queue_max_discard_sectors(q, UINT_MAX);
-       q->limits.discard_granularity   = 512;
+       q->limits.discard_granularity   = block_size;
        q->limits.io_min                = block_size;
        q->limits.logical_block_size    = block_size;
        q->limits.physical_block_size   = block_size;