On Tue, Apr 15, 2025 at 11:41:00AM +0800, Ming Lei wrote: > On Wed, Apr 09, 2025 at 03:09:40PM +0200, Christoph Hellwig wrote: > > vfs_iter_{read,write} always perform direct I/O when the file has the > > O_DIRECT flag set, which breaks disabling direct I/O using the > > LOOP_SET_STATUS / LOOP_SET_STATUS64 ioctls. > > > > This was recenly reported as a regression, but as far as I can tell > > was only uncovered by better checking for block sizes and has been > > around since the direct I/O support was added. > > > > Fix this by using the existing aio code that calls the raw read/write > > iter methods instead. Note that despite the comments there is no need > > for block drivers to ever call flush_dcache_page themselves, and the > > call is a left-over from prehistoric times. > > > > Fixes: ab1cb278bc70 ("block: loop: introduce ioctl command of LOOP_SET_DIRECT_IO") > > Reported-by: Darrick J. Wong <djwong@xxxxxxxxxx> > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > > Looks fine, > > Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> This seems to resolve the problem, thank you! Tested-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > > > Thanks, > Ming >