diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2014-04-05 04:37:17 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-06-12 00:21:11 -0400 |
| commit | 4da54c218da96fab0d65f3263c9b0092b42f0711 (patch) | |
| tree | 579f380a7d970dbdbedaaf7b144ea2130cde2d2e /fs | |
| parent | 96f9bc8fbc2440d90e15f02398e1de43f674b433 (diff) | |
nfs: switch to iter_splice_write_file()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/nfs/file.c | 32 | ||||
| -rw-r--r-- | fs/nfs/internal.h | 2 | ||||
| -rw-r--r-- | fs/nfs/nfs4file.c | 2 |
3 files changed, 2 insertions, 34 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 20a18e426bdf..f4ae5d0525e2 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
| @@ -690,36 +690,6 @@ out_swapfile: | |||
| 690 | } | 690 | } |
| 691 | EXPORT_SYMBOL_GPL(nfs_file_write); | 691 | EXPORT_SYMBOL_GPL(nfs_file_write); |
| 692 | 692 | ||
| 693 | ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe, | ||
| 694 | struct file *filp, loff_t *ppos, | ||
| 695 | size_t count, unsigned int flags) | ||
| 696 | { | ||
| 697 | struct inode *inode = file_inode(filp); | ||
| 698 | unsigned long written = 0; | ||
| 699 | ssize_t ret; | ||
| 700 | |||
| 701 | dprintk("NFS splice_write(%pD2, %lu@%llu)\n", | ||
| 702 | filp, (unsigned long) count, (unsigned long long) *ppos); | ||
| 703 | |||
| 704 | /* | ||
| 705 | * The combination of splice and an O_APPEND destination is disallowed. | ||
| 706 | */ | ||
| 707 | |||
| 708 | ret = generic_file_splice_write(pipe, filp, ppos, count, flags); | ||
| 709 | if (ret > 0) | ||
| 710 | written = ret; | ||
| 711 | |||
| 712 | if (ret >= 0 && nfs_need_sync_write(filp, inode)) { | ||
| 713 | int err = vfs_fsync(filp, 0); | ||
| 714 | if (err < 0) | ||
| 715 | ret = err; | ||
| 716 | } | ||
| 717 | if (ret > 0) | ||
| 718 | nfs_add_stats(inode, NFSIOS_NORMALWRITTENBYTES, written); | ||
| 719 | return ret; | ||
| 720 | } | ||
| 721 | EXPORT_SYMBOL_GPL(nfs_file_splice_write); | ||
| 722 | |||
| 723 | static int | 693 | static int |
| 724 | do_getlk(struct file *filp, int cmd, struct file_lock *fl, int is_local) | 694 | do_getlk(struct file *filp, int cmd, struct file_lock *fl, int is_local) |
| 725 | { | 695 | { |
| @@ -950,7 +920,7 @@ const struct file_operations nfs_file_operations = { | |||
| 950 | .lock = nfs_lock, | 920 | .lock = nfs_lock, |
| 951 | .flock = nfs_flock, | 921 | .flock = nfs_flock, |
| 952 | .splice_read = nfs_file_splice_read, | 922 | .splice_read = nfs_file_splice_read, |
| 953 | .splice_write = nfs_file_splice_write, | 923 | .splice_write = iter_file_splice_write, |
| 954 | .check_flags = nfs_check_flags, | 924 | .check_flags = nfs_check_flags, |
| 955 | .setlease = nfs_setlease, | 925 | .setlease = nfs_setlease, |
| 956 | }; | 926 | }; |
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index a5b36fc6b795..0e4e8049c9f5 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h | |||
| @@ -328,8 +328,6 @@ ssize_t nfs_file_write(struct kiocb *, struct iov_iter *); | |||
| 328 | int nfs_file_release(struct inode *, struct file *); | 328 | int nfs_file_release(struct inode *, struct file *); |
| 329 | int nfs_lock(struct file *, int, struct file_lock *); | 329 | int nfs_lock(struct file *, int, struct file_lock *); |
| 330 | int nfs_flock(struct file *, int, struct file_lock *); | 330 | int nfs_flock(struct file *, int, struct file_lock *); |
| 331 | ssize_t nfs_file_splice_write(struct pipe_inode_info *, struct file *, loff_t *, | ||
| 332 | size_t, unsigned int); | ||
| 333 | int nfs_check_flags(int); | 331 | int nfs_check_flags(int); |
| 334 | int nfs_setlease(struct file *, long, struct file_lock **); | 332 | int nfs_setlease(struct file *, long, struct file_lock **); |
| 335 | 333 | ||
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c index 549dd49638b2..50de2cdea082 100644 --- a/fs/nfs/nfs4file.c +++ b/fs/nfs/nfs4file.c | |||
| @@ -130,7 +130,7 @@ const struct file_operations nfs4_file_operations = { | |||
| 130 | .lock = nfs_lock, | 130 | .lock = nfs_lock, |
| 131 | .flock = nfs_flock, | 131 | .flock = nfs_flock, |
| 132 | .splice_read = nfs_file_splice_read, | 132 | .splice_read = nfs_file_splice_read, |
| 133 | .splice_write = nfs_file_splice_write, | 133 | .splice_write = iter_file_splice_write, |
| 134 | .check_flags = nfs_check_flags, | 134 | .check_flags = nfs_check_flags, |
| 135 | .setlease = nfs_setlease, | 135 | .setlease = nfs_setlease, |
| 136 | }; | 136 | }; |
