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 | |
parent | 96f9bc8fbc2440d90e15f02398e1de43f674b433 (diff) |
nfs: switch to iter_splice_write_file()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-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 | }; |