There is no point in doing an fdatasync to write out pages when switching
away from direct I/O, as there won't be any. The writeback is only
needed when switching to direct I/O, which would have to invalidate the
pagecache less efficiently from the I/O path.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20250110073750.1582447-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
if (lo->use_dio == use_dio)
return;
- /* flush dirty pages before changing direct IO */
- vfs_fsync(lo->lo_backing_file, 0);
+ /* flush dirty pages before starting to use direct I/O */
+ if (use_dio)
+ vfs_fsync(lo->lo_backing_file, 0);
/*
* The flag of LO_FLAGS_DIRECT_IO is handled similarly with