diff options
author | Jiufei Xue <jiufei.xue@linux.alibaba.com> | 2019-11-20 17:45:25 +0800 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2020-01-24 09:46:46 +0100 |
commit | 5dcdc43e24a1810d3c3f4959af3d0c8e0026d863 (patch) | |
tree | 3bc92094e47dcdbc4cca8fd30465b4a191135d73 /include/linux | |
parent | 1346416564f06444ca59778c05607bedb91a991a (diff) | |
download | lwn-5dcdc43e24a1810d3c3f4959af3d0c8e0026d863.tar.gz lwn-5dcdc43e24a1810d3c3f4959af3d0c8e0026d863.zip |
vfs: add vfs_iocb_iter_[read|write] helper functions
This doesn't cause any behavior changes and will be used by overlay async
IO implementation.
Signed-off-by: Jiufei Xue <jiufei.xue@linux.alibaba.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fs.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 98e0349adb52..28315a286bab 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2078,6 +2078,18 @@ static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) }; } +static inline void kiocb_clone(struct kiocb *kiocb, struct kiocb *kiocb_src, + struct file *filp) +{ + *kiocb = (struct kiocb) { + .ki_filp = filp, + .ki_flags = kiocb_src->ki_flags, + .ki_hint = kiocb_src->ki_hint, + .ki_ioprio = kiocb_src->ki_ioprio, + .ki_pos = kiocb_src->ki_pos, + }; +} + /* * Inode state bits. Protected by inode->i_lock * @@ -3108,6 +3120,10 @@ ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos, rwf_t flags); ssize_t vfs_iter_write(struct file *file, struct iov_iter *iter, loff_t *ppos, rwf_t flags); +ssize_t vfs_iocb_iter_read(struct file *file, struct kiocb *iocb, + struct iov_iter *iter); +ssize_t vfs_iocb_iter_write(struct file *file, struct kiocb *iocb, + struct iov_iter *iter); /* fs/block_dev.c */ extern ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to); |