]> www.infradead.org Git - nvme.git/commitdiff
loop: always update discard settings in loop_reconfigure_limits
authorChristoph Hellwig <hch@lst.de>
Mon, 17 Jun 2024 06:04:32 +0000 (08:04 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 19 Jun 2024 13:58:28 +0000 (07:58 -0600)
Simplify loop_reconfigure_limits by always updating the discard limits.
This adds a little more work to loop_set_block_size, but doesn't change
the outcome as the discard flag won't change.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240617060532.127975-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/loop.c

index fd671028fa85547366a37ccb8aebceac7b8fc23d..ce197cbea5f434e5222a7c83462d2e34a5c82429 100644 (file)
@@ -975,8 +975,7 @@ loop_set_status_from_info(struct loop_device *lo,
        return 0;
 }
 
-static int loop_reconfigure_limits(struct loop_device *lo, unsigned short bsize,
-               bool update_discard_settings)
+static int loop_reconfigure_limits(struct loop_device *lo, unsigned short bsize)
 {
        struct queue_limits lim;
 
@@ -984,8 +983,7 @@ static int loop_reconfigure_limits(struct loop_device *lo, unsigned short bsize,
        lim.logical_block_size = bsize;
        lim.physical_block_size = bsize;
        lim.io_min = bsize;
-       if (update_discard_settings)
-               loop_config_discard(lo, &lim);
+       loop_config_discard(lo, &lim);
        return queue_limits_commit_update(lo->lo_queue, &lim);
 }
 
@@ -1086,7 +1084,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
        else
                bsize = 512;
 
-       error = loop_reconfigure_limits(lo, bsize, true);
+       error = loop_reconfigure_limits(lo, bsize);
        if (WARN_ON_ONCE(error))
                goto out_unlock;
 
@@ -1496,7 +1494,7 @@ static int loop_set_block_size(struct loop_device *lo, unsigned long arg)
        invalidate_bdev(lo->lo_device);
 
        blk_mq_freeze_queue(lo->lo_queue);
-       err = loop_reconfigure_limits(lo, arg, false);
+       err = loop_reconfigure_limits(lo, arg);
        loop_update_dio(lo);
        blk_mq_unfreeze_queue(lo->lo_queue);