Hi Christoph, is there a reason you used 512 instead of SECTOR_SIZE from include/linux/blk_types.h? Thanks! On Thu, Dec 28, 2023 at 2:56 AM Christoph Hellwig <hch@xxxxxx> wrote: > > Current the discard granularity defaults to 0 and must be initialized by > any driver that wants to support discard. Default to the sector size > instead, which is the smallest possible value, and a very useful default. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > block/blk-settings.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/block/blk-settings.c b/block/blk-settings.c > index ba6e0e97118c08..d993d20dab3c6d 100644 > --- a/block/blk-settings.c > +++ b/block/blk-settings.c > @@ -48,7 +48,7 @@ void blk_set_default_limits(struct queue_limits *lim) > lim->max_discard_sectors = 0; > lim->max_hw_discard_sectors = 0; > lim->max_secure_erase_sectors = 0; > - lim->discard_granularity = 0; > + lim->discard_granularity = 512; > lim->discard_alignment = 0; > lim->discard_misaligned = 0; > lim->logical_block_size = lim->physical_block_size = lim->io_min = 512; > @@ -309,6 +309,9 @@ void blk_queue_logical_block_size(struct request_queue *q, unsigned int size) > > limits->logical_block_size = size; > > + if (limits->discard_granularity < limits->logical_block_size) > + limits->discard_granularity = limits->logical_block_size; > + > if (limits->physical_block_size < size) > limits->physical_block_size = size; > > -- > 2.39.2 > >