diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2014-04-03 14:13:46 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-05-06 17:39:39 -0400 |
| commit | 50b5551d1719c8bce60c6d4027b814cfc72c2307 (patch) | |
| tree | 2386b73f9cd2d279973a1c3dd1f8c1dfd4cad5d0 | |
| parent | da56e45b6ee83b67a586c61819cd2b5cfd806eb8 (diff) | |
afs: switch to ->write_iter()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | fs/afs/file.c | 4 | ||||
| -rw-r--r-- | fs/afs/internal.h | 3 | ||||
| -rw-r--r-- | fs/afs/write.c | 11 |
3 files changed, 8 insertions, 10 deletions
diff --git a/fs/afs/file.c b/fs/afs/file.c index 26fd19bfccc3..932ce07948b3 100644 --- a/fs/afs/file.c +++ b/fs/afs/file.c | |||
| @@ -32,9 +32,9 @@ const struct file_operations afs_file_operations = { | |||
| 32 | .release = afs_release, | 32 | .release = afs_release, |
| 33 | .llseek = generic_file_llseek, | 33 | .llseek = generic_file_llseek, |
| 34 | .read = new_sync_read, | 34 | .read = new_sync_read, |
| 35 | .write = do_sync_write, | 35 | .write = new_sync_write, |
| 36 | .read_iter = generic_file_read_iter, | 36 | .read_iter = generic_file_read_iter, |
| 37 | .aio_write = afs_file_write, | 37 | .write_iter = afs_file_write, |
| 38 | .mmap = generic_file_readonly_mmap, | 38 | .mmap = generic_file_readonly_mmap, |
| 39 | .splice_read = generic_file_splice_read, | 39 | .splice_read = generic_file_splice_read, |
| 40 | .fsync = afs_fsync, | 40 | .fsync = afs_fsync, |
diff --git a/fs/afs/internal.h b/fs/afs/internal.h index be75b500005d..d2f91bd615a9 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h | |||
| @@ -747,8 +747,7 @@ extern int afs_write_end(struct file *file, struct address_space *mapping, | |||
| 747 | extern int afs_writepage(struct page *, struct writeback_control *); | 747 | extern int afs_writepage(struct page *, struct writeback_control *); |
| 748 | extern int afs_writepages(struct address_space *, struct writeback_control *); | 748 | extern int afs_writepages(struct address_space *, struct writeback_control *); |
| 749 | extern void afs_pages_written_back(struct afs_vnode *, struct afs_call *); | 749 | extern void afs_pages_written_back(struct afs_vnode *, struct afs_call *); |
| 750 | extern ssize_t afs_file_write(struct kiocb *, const struct iovec *, | 750 | extern ssize_t afs_file_write(struct kiocb *, struct iov_iter *); |
| 751 | unsigned long, loff_t); | ||
| 752 | extern int afs_writeback_all(struct afs_vnode *); | 751 | extern int afs_writeback_all(struct afs_vnode *); |
| 753 | extern int afs_fsync(struct file *, loff_t, loff_t, int); | 752 | extern int afs_fsync(struct file *, loff_t, loff_t, int); |
| 754 | 753 | ||
diff --git a/fs/afs/write.c b/fs/afs/write.c index a890db4b9898..ab6adfd52516 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c | |||
| @@ -625,15 +625,14 @@ void afs_pages_written_back(struct afs_vnode *vnode, struct afs_call *call) | |||
| 625 | /* | 625 | /* |
| 626 | * write to an AFS file | 626 | * write to an AFS file |
| 627 | */ | 627 | */ |
| 628 | ssize_t afs_file_write(struct kiocb *iocb, const struct iovec *iov, | 628 | ssize_t afs_file_write(struct kiocb *iocb, struct iov_iter *from) |
| 629 | unsigned long nr_segs, loff_t pos) | ||
| 630 | { | 629 | { |
| 631 | struct afs_vnode *vnode = AFS_FS_I(file_inode(iocb->ki_filp)); | 630 | struct afs_vnode *vnode = AFS_FS_I(file_inode(iocb->ki_filp)); |
| 632 | ssize_t result; | 631 | ssize_t result; |
| 633 | size_t count = iov_length(iov, nr_segs); | 632 | size_t count = iov_iter_count(from); |
| 634 | 633 | ||
| 635 | _enter("{%x.%u},{%zu},%lu,", | 634 | _enter("{%x.%u},{%zu},", |
| 636 | vnode->fid.vid, vnode->fid.vnode, count, nr_segs); | 635 | vnode->fid.vid, vnode->fid.vnode, count); |
| 637 | 636 | ||
| 638 | if (IS_SWAPFILE(&vnode->vfs_inode)) { | 637 | if (IS_SWAPFILE(&vnode->vfs_inode)) { |
| 639 | printk(KERN_INFO | 638 | printk(KERN_INFO |
| @@ -644,7 +643,7 @@ ssize_t afs_file_write(struct kiocb *iocb, const struct iovec *iov, | |||
| 644 | if (!count) | 643 | if (!count) |
| 645 | return 0; | 644 | return 0; |
| 646 | 645 | ||
| 647 | result = generic_file_aio_write(iocb, iov, nr_segs, pos); | 646 | result = generic_file_write_iter(iocb, from); |
| 648 | if (IS_ERR_VALUE(result)) { | 647 | if (IS_ERR_VALUE(result)) { |
| 649 | _leave(" = %zd", result); | 648 | _leave(" = %zd", result); |
| 650 | return result; | 649 | return result; |
