diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-04-02 20:14:12 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-05-06 17:37:59 -0400 |
commit | 3aa2d199f8eb8149a88005e88736d583cbc39d31 (patch) | |
tree | 21d0a81d243152141bfc792b333fa629ec6f75fa /fs/nfs/file.c | |
parent | a886038baa48a17f2cf77fb5dcc204fd28659d8f (diff) |
nfs: switch to ->read_iter()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nfs/file.c')
-rw-r--r-- | fs/nfs/file.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index ead8f44f7973..200bdb0779f0 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
@@ -165,26 +165,21 @@ nfs_file_flush(struct file *file, fl_owner_t id) | |||
165 | EXPORT_SYMBOL_GPL(nfs_file_flush); | 165 | EXPORT_SYMBOL_GPL(nfs_file_flush); |
166 | 166 | ||
167 | ssize_t | 167 | ssize_t |
168 | nfs_file_read(struct kiocb *iocb, const struct iovec *iov, | 168 | nfs_file_read(struct kiocb *iocb, struct iov_iter *to) |
169 | unsigned long nr_segs, loff_t pos) | ||
170 | { | 169 | { |
171 | struct inode *inode = file_inode(iocb->ki_filp); | 170 | struct inode *inode = file_inode(iocb->ki_filp); |
172 | size_t count = iov_length(iov, nr_segs); | ||
173 | ssize_t result; | 171 | ssize_t result; |
174 | struct iov_iter to; | ||
175 | |||
176 | iov_iter_init(&to, READ, iov, nr_segs, count); | ||
177 | 172 | ||
178 | if (iocb->ki_filp->f_flags & O_DIRECT) | 173 | if (iocb->ki_filp->f_flags & O_DIRECT) |
179 | return nfs_file_direct_read(iocb, &to, pos, true); | 174 | return nfs_file_direct_read(iocb, to, iocb->ki_pos, true); |
180 | 175 | ||
181 | dprintk("NFS: read(%pD2, %zu@%lu)\n", | 176 | dprintk("NFS: read(%pD2, %zu@%lu)\n", |
182 | iocb->ki_filp, | 177 | iocb->ki_filp, |
183 | count, (unsigned long) pos); | 178 | iov_iter_count(to), (unsigned long) iocb->ki_pos); |
184 | 179 | ||
185 | result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); | 180 | result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); |
186 | if (!result) { | 181 | if (!result) { |
187 | result = generic_file_read_iter(iocb, &to); | 182 | result = generic_file_read_iter(iocb, to); |
188 | if (result > 0) | 183 | if (result > 0) |
189 | nfs_add_stats(inode, NFSIOS_NORMALREADBYTES, result); | 184 | nfs_add_stats(inode, NFSIOS_NORMALREADBYTES, result); |
190 | } | 185 | } |
@@ -945,9 +940,9 @@ EXPORT_SYMBOL_GPL(nfs_setlease); | |||
945 | 940 | ||
946 | const struct file_operations nfs_file_operations = { | 941 | const struct file_operations nfs_file_operations = { |
947 | .llseek = nfs_file_llseek, | 942 | .llseek = nfs_file_llseek, |
948 | .read = do_sync_read, | 943 | .read = new_sync_read, |
949 | .write = do_sync_write, | 944 | .write = do_sync_write, |
950 | .aio_read = nfs_file_read, | 945 | .read_iter = nfs_file_read, |
951 | .aio_write = nfs_file_write, | 946 | .aio_write = nfs_file_write, |
952 | .mmap = nfs_file_mmap, | 947 | .mmap = nfs_file_mmap, |
953 | .open = nfs_file_open, | 948 | .open = nfs_file_open, |