]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
loop: Don't bother validating blocksize
authorJohn Garry <john.g.garry@oracle.com>
Mon, 8 Jul 2024 09:16:51 +0000 (09:16 +0000)
committerJens Axboe <axboe@kernel.dk>
Tue, 9 Jul 2024 06:00:17 +0000 (00:00 -0600)
The block queue limits validation does this for us now.

The loop_configure() -> WARN_ON_ONCE() call is dropped, as an invalid
block size would trigger this now. We don't want userspace to be able to
directly trigger WARNs.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Link: https://lore.kernel.org/r/20240708091651.177447-6-john.g.garry@oracle.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/loop.c

index a6f2d63678988b059a0f10240d97d7c344c42569..5e93d1c96267d79dd0317489c3bbde108188f433 100644 (file)
@@ -1038,12 +1038,6 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
                goto out_unlock;
        }
 
-       if (config->block_size) {
-               error = blk_validate_block_size(config->block_size);
-               if (error)
-                       goto out_unlock;
-       }
-
        error = loop_set_status_from_info(lo, &config->info);
        if (error)
                goto out_unlock;
@@ -1075,7 +1069,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
        mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
 
        error = loop_reconfigure_limits(lo, config->block_size);
-       if (WARN_ON_ONCE(error))
+       if (error)
                goto out_unlock;
 
        loop_update_dio(lo);
@@ -1447,10 +1441,6 @@ static int loop_set_block_size(struct loop_device *lo, unsigned long arg)
        if (lo->lo_state != Lo_bound)
                return -ENXIO;
 
-       err = blk_validate_block_size(arg);
-       if (err)
-               return err;
-
        if (lo->lo_queue->limits.logical_block_size == arg)
                return 0;