diff options
-rw-r--r-- | fs/nfs/file.c | 17 | ||||
-rw-r--r-- | fs/nfs/internal.h | 2 | ||||
-rw-r--r-- | fs/nfs/nfs4file.c | 4 |
3 files changed, 9 insertions, 14 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, |
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index dd8bfc2e2464..e598e4a852ad 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h | |||
@@ -320,7 +320,7 @@ int nfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *) | |||
320 | int nfs_file_fsync_commit(struct file *, loff_t, loff_t, int); | 320 | int nfs_file_fsync_commit(struct file *, loff_t, loff_t, int); |
321 | loff_t nfs_file_llseek(struct file *, loff_t, int); | 321 | loff_t nfs_file_llseek(struct file *, loff_t, int); |
322 | int nfs_file_flush(struct file *, fl_owner_t); | 322 | int nfs_file_flush(struct file *, fl_owner_t); |
323 | ssize_t nfs_file_read(struct kiocb *, const struct iovec *, unsigned long, loff_t); | 323 | ssize_t nfs_file_read(struct kiocb *, struct iov_iter *); |
324 | ssize_t nfs_file_splice_read(struct file *, loff_t *, struct pipe_inode_info *, | 324 | ssize_t nfs_file_splice_read(struct file *, loff_t *, struct pipe_inode_info *, |
325 | size_t, unsigned int); | 325 | size_t, unsigned int); |
326 | int nfs_file_mmap(struct file *, struct vm_area_struct *); | 326 | int nfs_file_mmap(struct file *, struct vm_area_struct *); |
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c index 8de3407e0360..37a998cae963 100644 --- a/fs/nfs/nfs4file.c +++ b/fs/nfs/nfs4file.c | |||
@@ -118,9 +118,9 @@ nfs4_file_fsync(struct file *file, loff_t start, loff_t end, int datasync) | |||
118 | 118 | ||
119 | const struct file_operations nfs4_file_operations = { | 119 | const struct file_operations nfs4_file_operations = { |
120 | .llseek = nfs_file_llseek, | 120 | .llseek = nfs_file_llseek, |
121 | .read = do_sync_read, | 121 | .read = new_sync_read, |
122 | .write = do_sync_write, | 122 | .write = do_sync_write, |
123 | .aio_read = nfs_file_read, | 123 | .read_iter = nfs_file_read, |
124 | .aio_write = nfs_file_write, | 124 | .aio_write = nfs_file_write, |
125 | .mmap = nfs_file_mmap, | 125 | .mmap = nfs_file_mmap, |
126 | .open = nfs4_file_open, | 126 | .open = nfs4_file_open, |