On 07/22, Eric Biggers wrote: > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > Currently, if an f2fs filesystem is mounted with the mode=lfs and > io_bits mount options, DIO reads are allowed but DIO writes are not. > Allowing DIO reads but not DIO writes is an unusual restriction, which > is likely to be surprising to applications, namely any application that > both reads and writes from a file (using O_DIRECT). This behavior is > also incompatible with the proposed STATX_DIOALIGN extension to statx. > Given this, let's drop the support for DIO reads in this configuration. IIRC, we allowed DIO reads since applications complained a lower performance. So, I'm afraid this change will make another confusion to users. Could you please apply the new bahavior only for STATX_DIOALIGN? > > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > --- > fs/f2fs/file.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index 5e5c97fccfb4ee..ad0212848a1ab9 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -823,7 +823,6 @@ static inline bool f2fs_force_buffered_io(struct inode *inode, > struct kiocb *iocb, struct iov_iter *iter) > { > struct f2fs_sb_info *sbi = F2FS_I_SB(inode); > - int rw = iov_iter_rw(iter); > > if (!fscrypt_dio_supported(inode)) > return true; > @@ -841,7 +840,7 @@ static inline bool f2fs_force_buffered_io(struct inode *inode, > */ > if (f2fs_sb_has_blkzoned(sbi)) > return true; > - if (f2fs_lfs_mode(sbi) && (rw == WRITE)) { > + if (f2fs_lfs_mode(sbi)) { > if (block_unaligned_IO(inode, iocb, iter)) > return true; > if (F2FS_IO_ALIGNED(sbi)) > -- > 2.37.0