[PATCH v2 0/5] Validate logical block size in blk_validate_limits()

From: John Garry
Date: Mon Jul 08 2024 - 05:18:21 EST


This series adds validation of the logical block size in
blk_validate_limits().

Some drivers had already been validating this themselves. As such, we can
mostly drop that driver validation.

nbd is problematic, as we cannot only change to just stop calling
blk_validate_limits(). This is because the LBS is updated in a 2-stage
process:
a. update block size in the driver and validate
b. update queue limits

So if we stop validating the limits in a., there is a user-visible change
in behaviour (as we stop rejecting invalid limits from the NBD_SET_BLKSIZE
ioctl). So I left that untouched.

This topic was originally mentioned in [0] and then again in [1] by
Keith.

I have also included a related virtio_blk change to deal with
blk_size config fallback.

[0] https://lore.kernel.org/linux-block/10b3e3fe-6ad5-4e0e-b822-f51656c976ee@xxxxxxxxxx/
[1] https://lore.kernel.org/linux-block/Zl4dxaQgPbw19Irk@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

Differences to v1:
- Add RB tags (thanks!)
- Update comment on blk_validate_block_size() and add print in
blk_validate_limits()

John Garry (5):
virtio_blk: Fix default logical block size fallback
block: Validate logical block size in blk_validate_limits()
null_blk: Don't bother validating blocksize
virtio_blk: Don't bother validating blocksize
loop: Don't bother validating blocksize

block/blk-settings.c | 4 ++++
drivers/block/loop.c | 12 +-----------
drivers/block/null_blk/main.c | 3 ---
drivers/block/virtio_blk.c | 31 +++++++++++--------------------
include/linux/blkdev.h | 1 +
5 files changed, 17 insertions(+), 34 deletions(-)

--
2.31.1