diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-04-02 14:47:09 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-05-06 17:37:57 -0400 |
commit | 37c20f16e7a73e5fe34815e785ca6c5a46e4d260 (patch) | |
tree | 60c4a9ab7025f86375f6f3261c16732f8ff9e5b6 | |
parent | 3cd9ad5a303a0d503492002c4af95becfa99af03 (diff) | |
download | op-kernel-dev-37c20f16e7a73e5fe34815e785ca6c5a46e4d260.zip op-kernel-dev-37c20f16e7a73e5fe34815e785ca6c5a46e4d260.tar.gz |
fuse_file_aio_read(): convert to ->read_iter()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | fs/fuse/file.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 66d2d5d..a25fa90 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -933,8 +933,7 @@ out: return err; } -static ssize_t fuse_file_aio_read(struct kiocb *iocb, const struct iovec *iov, - unsigned long nr_segs, loff_t pos) +static ssize_t fuse_file_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct inode *inode = iocb->ki_filp->f_mapping->host; struct fuse_conn *fc = get_fuse_conn(inode); @@ -945,14 +944,14 @@ static ssize_t fuse_file_aio_read(struct kiocb *iocb, const struct iovec *iov, * i_size is up to date). */ if (fc->auto_inval_data || - (pos + iov_length(iov, nr_segs) > i_size_read(inode))) { + (iocb->ki_pos + iov_iter_count(to) > i_size_read(inode))) { int err; err = fuse_update_attributes(inode, NULL, iocb->ki_filp, NULL); if (err) return err; } - return generic_file_aio_read(iocb, iov, nr_segs, pos); + return generic_file_read_iter(iocb, to); } static void fuse_write_fill(struct fuse_req *req, struct fuse_file *ff, @@ -3038,8 +3037,8 @@ out: static const struct file_operations fuse_file_operations = { .llseek = fuse_file_llseek, - .read = do_sync_read, - .aio_read = fuse_file_aio_read, + .read = new_sync_read, + .read_iter = fuse_file_read_iter, .write = do_sync_write, .aio_write = fuse_file_aio_write, .mmap = fuse_file_mmap, |