]> git.ipfire.org Git - thirdparty/linux.git/commit
loop: take the file system minimum dio alignment into account
authorChristoph Hellwig <hch@lst.de>
Fri, 31 Jan 2025 12:00:41 +0000 (13:00 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 24 Feb 2025 23:17:56 +0000 (16:17 -0700)
commitf4774e92aab85d9bb5c76463f220ad7ba535bb1c
tree80e7870de33086f7874764ffc3a0ea0b828024f3
parentf6f9e32fe1e454ae8ac0190b2c2bd6074914beec
loop: take the file system minimum dio alignment into account

The loop driver currently uses the logical block size of the underlying
bdev as the lower bound of the loop device block size.  While this works
for many cases, it fails for file systems made up of multiple devices
with different logical block sizes (e.g. XFS with a RT device that has a
larger logical block size), or when the file systems doesn't support
direct I/O writes at the sector size granularity (e.g. because it does
out of place writes with a file system block size larger than the sector
size).

Fix this by querying the minimum direct I/O alignment from statx when
available.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20250131120120.1315125-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/loop.c