Re: [PATCH] loop: change queue block size to match when using DIO.

From: Christoph Hellwig
Date: Fri Aug 30 2019 - 11:50:27 EST


On Wed, Aug 28, 2019 at 12:32:29PM +0200, Martijn Coenen wrote:
> The loop driver assumes that if the passed in fd is opened with
> O_DIRECT, the caller wants to use direct I/O on the loop device.
> However, if the underlying filesystem has a different block size than
> the loop block queue, direct I/O can't be enabled. Instead of requiring
> userspace to manually change the blocksize and re-enable direct I/O,
> just change the queue block size to match.

Why can't we enable the block device in that case? All the usual
block filesystems support 512 byte aligned direct I/O with a 4k
file system block size (as long as the underlying block device
sector size is also 512 bytes).