[PATCH] f2fs: fix to return -EOPNOTSUPP for uncached write

Chao Yu posted 1 patch 2 months ago
There is a newer version of this series
fs/f2fs/file.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] f2fs: fix to return -EOPNOTSUPP for uncached write
Posted by Chao Yu 2 months ago
f2fs doesn't support uncached write yet, for write() w/ IOCB_DONTCACHE
flag, let's return -EOPNOTSUPP instead of ignoring IOCB_DONTCACHE flag
and write w/o uncached IO.

Cc: Jens Axboe <axboe@kernel.dk>
Cc: Qi Han <hanqi@vivo.com>
Signed-off-by: Chao Yu <chao@kernel.org>
---
v2:
- fix author info
 fs/f2fs/file.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 9b8d24097b7a..7f09cad6b6d7 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -5185,6 +5185,11 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
 		goto out;
 	}
 
+	if (iocb->ki_flags & IOCB_DONTCACHE) {
+		ret = -EOPNOTSUPP;
+		goto out;
+	}
+
 	if (!f2fs_is_compress_backend_ready(inode)) {
 		ret = -EOPNOTSUPP;
 		goto out;
-- 
2.49.0
Re: [PATCH v?] f2fs: fix to return -EOPNOTSUPP for uncached write
Posted by Markus Elfring 2 months ago
> f2fs doesn't support uncached write yet, for write() w/ IOCB_DONTCACHE
> flag, let's return -EOPNOTSUPP instead of ignoring IOCB_DONTCACHE flag
> and write w/o uncached IO.

See also once more:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.16#n94


…
> ---
> v2:
…

Should a corresponding information appear in the patch subject?


…
> +++ b/fs/f2fs/file.c
> @@ -5185,6 +5185,11 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
>  		goto out;
>  	}
>  
> +	if (iocb->ki_flags & IOCB_DONTCACHE) {
> +		ret = -EOPNOTSUPP;
> +		goto out;
> +	}
> +
>  	if (!f2fs_is_compress_backend_ready(inode)) {
>  		ret = -EOPNOTSUPP;
>  		goto out;

Can it be avoided to specify duplicate exception handling?
May the condition checks be merged for these if statements?

Regards,
Markus