diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/coda/file.c | 2 | ||||
-rw-r--r-- | fs/read_write.c | 29 |
2 files changed, 10 insertions, 21 deletions
diff --git a/fs/coda/file.c b/fs/coda/file.c index 9d956cd6d46f..f1102822bcfd 100644 --- a/fs/coda/file.c +++ b/fs/coda/file.c @@ -34,7 +34,7 @@ coda_file_read_iter(struct kiocb *iocb, struct iov_iter *to) BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC); - return vfs_iter_read(cfi->cfi_container, to, &iocb->ki_pos); + return vfs_iter_read(cfi->cfi_container, to, &iocb->ki_pos, 0); } static ssize_t diff --git a/fs/read_write.c b/fs/read_write.c index 64b61a032a56..4dab30b62f0e 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -356,26 +356,6 @@ out_putf: } #endif -ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos) -{ - struct kiocb kiocb; - ssize_t ret; - - if (!file->f_op->read_iter) - return -EINVAL; - - init_sync_kiocb(&kiocb, file); - kiocb.ki_pos = *ppos; - - iter->type |= READ; - ret = call_read_iter(file, &kiocb, iter); - BUG_ON(ret == -EIOCBQUEUED); - if (ret > 0) - *ppos = kiocb.ki_pos; - return ret; -} -EXPORT_SYMBOL(vfs_iter_read); - ssize_t vfs_iter_write(struct file *file, struct iov_iter *iter, loff_t *ppos) { struct kiocb kiocb; @@ -944,6 +924,15 @@ out: return ret; } +ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos, + int flags) +{ + if (!file->f_op->read_iter) + return -EINVAL; + return do_iter_read(file, iter, ppos, flags); +} +EXPORT_SYMBOL(vfs_iter_read); + static ssize_t do_iter_write(struct file *file, struct iov_iter *iter, loff_t *pos, int flags) { |