[PATCH] f2fs: allow parallel DIO reads

Jaegeuk Kim posted 1 patch 1 month, 2 weeks ago
fs/f2fs/file.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] f2fs: allow parallel DIO reads
Posted by Jaegeuk Kim 1 month, 2 weeks ago
This fixes a regression which prevents parallel DIO reads.

Fixes: 0cac51185e65 ("f2fs: fix to avoid racing in between read and OPU dio write")
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
 fs/f2fs/file.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 71d5ded9eeda..adc7d64a6f47 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -4647,7 +4647,8 @@ static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
 					iov_iter_count(to), READ);
 
 	/* In LFS mode, if there is inflight dio, wait for its completion */
-	if (f2fs_lfs_mode(F2FS_I_SB(inode)))
+	if (f2fs_lfs_mode(F2FS_I_SB(inode)) &&
+	    get_pages(F2FS_I_SB(inode), F2FS_DIO_WRITE))
 		inode_dio_wait(inode);
 
 	if (f2fs_should_use_dio(inode, iocb, to)) {
-- 
2.47.0.rc1.288.g06298d1525-goog
Re: [f2fs-dev] [PATCH] f2fs: allow parallel DIO reads
Posted by Daeho Jeong 1 month, 2 weeks ago
Reviewed-by: Daeho Jeong <daehojeong@google.com>

Thanks,

On Wed, Oct 9, 2024 at 5:10 PM Jaegeuk Kim via Linux-f2fs-devel
<linux-f2fs-devel@lists.sourceforge.net> wrote:
>
> This fixes a regression which prevents parallel DIO reads.
>
> Fixes: 0cac51185e65 ("f2fs: fix to avoid racing in between read and OPU dio write")
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
>  fs/f2fs/file.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 71d5ded9eeda..adc7d64a6f47 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -4647,7 +4647,8 @@ static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
>                                         iov_iter_count(to), READ);
>
>         /* In LFS mode, if there is inflight dio, wait for its completion */
> -       if (f2fs_lfs_mode(F2FS_I_SB(inode)))
> +       if (f2fs_lfs_mode(F2FS_I_SB(inode)) &&
> +           get_pages(F2FS_I_SB(inode), F2FS_DIO_WRITE))
>                 inode_dio_wait(inode);
>
>         if (f2fs_should_use_dio(inode, iocb, to)) {
> --
> 2.47.0.rc1.288.g06298d1525-goog
>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel