[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YtyoF89iOg8gs7hj@google.com>
Date: Sat, 23 Jul 2022 19:01:59 -0700
From: Jaegeuk Kim <jaegeuk@...nel.org>
To: Eric Biggers <ebiggers@...nel.org>
Cc: linux-fsdevel@...r.kernel.org, linux-ext4@...r.kernel.org,
linux-f2fs-devel@...ts.sourceforge.net, linux-xfs@...r.kernel.org,
linux-api@...r.kernel.org, linux-fscrypt@...r.kernel.org,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
Keith Busch <kbusch@...nel.org>
Subject: Re: [PATCH v4 6/9] f2fs: don't allow DIO reads but not DIO writes
On 07/22, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@...gle.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 <ebiggers@...gle.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
Powered by blists - more mailing lists