xen-blkfront: set max_discard/secure erase limits to UINT_MAX
authorChristoph Hellwig <hch@lst.de>
Wed, 21 Feb 2024 12:58:42 +0000 (13:58 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 27 Feb 2024 16:33:08 +0000 (09:33 -0700)
Currently xen-blkfront set the max discard limit to the capacity of
the device, which is suboptimal when the capacity changes.  Just set
it to UINT_MAX, which has the same effect and is simpler.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Link: https://lore.kernel.org/r/20240221125845.3610668-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/xen-blkfront.c

index 4cc2884e7484635eba512d89eecbf53688c8810c..f78167cd5a6333456da8be6f2812f52ad082507e 100644 (file)
@@ -944,20 +944,18 @@ static const struct blk_mq_ops blkfront_mq_ops = {
 static void blkif_set_queue_limits(struct blkfront_info *info)
 {
        struct request_queue *rq = info->rq;
-       struct gendisk *gd = info->gd;
        unsigned int segments = info->max_indirect_segments ? :
                                BLKIF_MAX_SEGMENTS_PER_REQUEST;
 
        blk_queue_flag_set(QUEUE_FLAG_VIRT, rq);
 
        if (info->feature_discard) {
-               blk_queue_max_discard_sectors(rq, get_capacity(gd));
+               blk_queue_max_discard_sectors(rq, UINT_MAX);
                rq->limits.discard_granularity = info->discard_granularity ?:
                                                 info->physical_sector_size;
                rq->limits.discard_alignment = info->discard_alignment;
                if (info->feature_secdiscard)
-                       blk_queue_max_secure_erase_sectors(rq,
-                                                          get_capacity(gd));
+                       blk_queue_max_secure_erase_sectors(rq, UINT_MAX);
        }
 
        /* Hard sector size and max sectors impersonate the equiv. hardware. */