]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
block: use chunk_sectors when evaluating stacked atomic write limits
authorJohn Garry <john.g.garry@oracle.com>
Fri, 11 Jul 2025 10:52:58 +0000 (10:52 +0000)
committerJens Axboe <axboe@kernel.dk>
Thu, 17 Jul 2025 12:01:16 +0000 (06:01 -0600)
commit63d092d1c1b1f773232c67c87debe557aab5aca0
tree043eecfe1b8c88a8228bcb76e6f80dd5f55fec07
parent5fb9d4341b782a80eefa0dc1664d131ac3c8885d
block: use chunk_sectors when evaluating stacked atomic write limits

The atomic write unit max value is limited by any stacked device stripe
size.

It is required that the atomic write unit is a power-of-2 factor of the
stripe size.

Currently we use io_min limit to hold the stripe size, and check for a
io_min <= SECTOR_SIZE when deciding if we have a striped stacked device.

Nilay reports that this causes a problem when the physical block size is
greater than SECTOR_SIZE [0].

Furthermore, io_min may be mutated when stacking devices, and this makes
it a poor candidate to hold the stripe size. Such an example (of when
io_min may change) would be when the io_min is less than the physical
block size.

Use chunk_sectors to hold the stripe size, which is more appropriate.

[0] https://lore.kernel.org/linux-block/888f3b1d-7817-4007-b3b3-1a2ea04df771@linux.ibm.com/T/#mecca17129f72811137d3c2f1e477634e77f06781

Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
Tested-by: Nilay Shroff <nilay@linux.ibm.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20250711105258.3135198-7-john.g.garry@oracle.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-settings.c