| Subject | [PATCH v6 01/34] vfs: Unconditionally set IOCB_WRITE in call_write_iter() | From | David Howells <> | Date | Mon, 16 Jan 2023 23:08:09 +0000 |
| |
IOCB_WRITE is set by aio, io_uring and cachefiles before submitting a write operation to the VFS, but it isn't set by, say, the write() system call.
Fix this by setting IOCB_WRITE unconditionally in call_write_iter().
This will allow drivers to use IOCB_WRITE instead of the iterator data source to determine the I/O direction.
Signed-off-by: David Howells <dhowells@redhat.com> cc: Alexander Viro <viro@zeniv.linux.org.uk> cc: Christoph Hellwig <hch@lst.de> cc: Jens Axboe <axboe@kernel.dk> cc: linux-block@vger.kernel.org cc: linux-fsdevel@vger.kernel.org ---
include/linux/fs.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/linux/fs.h b/include/linux/fs.h index 066555ad1bf8..649ff061440e 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2183,6 +2183,7 @@ static inline ssize_t call_read_iter(struct file *file, struct kiocb *kio, static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio, struct iov_iter *iter) { + kio->ki_flags |= IOCB_WRITE; return file->f_op->write_iter(kio, iter); }
|