On 07/22, Eric Biggers wrote:
> From: Eric Biggers <ebigg...@google.com>
> 
> 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 <ebigg...@google.com>
> ---
>  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


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to