Commit f6f9e32f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

loop: check in LO_FLAGS_DIRECT_IO in loop_default_blocksize



We can't go below the minimum direct I/O size no matter if direct I/O is
enabled by passing in an O_DIRECT file descriptor or due to the explicit
flag.  Now that LO_FLAGS_DIRECT_IO is set earlier after assigning a
backing file, loop_default_blocksize can check it instead of the
O_DIRECT flag to handle both conditions.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20250131120120.1315125-4-hch@lst.de


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 984c2ab4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -980,7 +980,7 @@ static unsigned int loop_default_blocksize(struct loop_device *lo,
		struct block_device *backing_bdev)
{
	/* In case of direct I/O, match underlying block size */
	if ((lo->lo_backing_file->f_flags & O_DIRECT) && backing_bdev)
	if ((lo->lo_flags & LO_FLAGS_DIRECT_IO) && backing_bdev)
		return bdev_logical_block_size(backing_bdev);
	return SECTOR_SIZE;
}