aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2015-04-03 15:41:18 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2015-04-11 22:29:40 -0400
commit5d5d568975307877e9195f5305f4240e506a2807 (patch)
treeb58d5b1af9e77189357b95f5cb0dc635bba65285
parent86cc05840a0da1afcb6b8151b53f3b606457c91b (diff)
make new_sync_{read,write}() static
All places outside of core VFS that checked ->read and ->write for being NULL or called the methods directly are gone now, so NULL {read,write} with non-NULL {read,write}_iter will do the right thing in all cases. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--Documentation/filesystems/porting9
-rw-r--r--arch/s390/hypfs/inode.c2
-rw-r--r--drivers/char/mem.c2
-rw-r--r--drivers/char/raw.c2
-rw-r--r--drivers/net/macvtap.c2
-rw-r--r--drivers/net/tun.c2
-rw-r--r--drivers/staging/lustre/lustre/llite/file.c6
-rw-r--r--drivers/usb/gadget/function/f_fs.c2
-rw-r--r--drivers/usb/gadget/legacy/inode.c2
-rw-r--r--fs/9p/vfs_file.c12
-rw-r--r--fs/adfs/file.c2
-rw-r--r--fs/affs/file.c2
-rw-r--r--fs/afs/file.c2
-rw-r--r--fs/bfs/file.c2
-rw-r--r--fs/block_dev.c2
-rw-r--r--fs/btrfs/file.c2
-rw-r--r--fs/ceph/file.c2
-rw-r--r--fs/cifs/cifsfs.c12
-rw-r--r--fs/coda/file.c2
-rw-r--r--fs/ecryptfs/file.c2
-rw-r--r--fs/exofs/file.c2
-rw-r--r--fs/ext2/file.c4
-rw-r--r--fs/ext3/file.c2
-rw-r--r--fs/ext4/file.c4
-rw-r--r--fs/f2fs/file.c2
-rw-r--r--fs/fat/file.c2
-rw-r--r--fs/fuse/cuse.c2
-rw-r--r--fs/fuse/file.c4
-rw-r--r--fs/gfs2/file.c4
-rw-r--r--fs/hfs/inode.c2
-rw-r--r--fs/hfsplus/inode.c2
-rw-r--r--fs/hostfs/hostfs_kern.c2
-rw-r--r--fs/hpfs/file.c2
-rw-r--r--fs/hugetlbfs/inode.c1
-rw-r--r--fs/jffs2/file.c2
-rw-r--r--fs/jfs/file.c2
-rw-r--r--fs/logfs/file.c2
-rw-r--r--fs/minix/file.c2
-rw-r--r--fs/ncpfs/file.c2
-rw-r--r--fs/nfs/file.c2
-rw-r--r--fs/nfs/nfs4file.c2
-rw-r--r--fs/nilfs2/file.c2
-rw-r--r--fs/ntfs/file.c2
-rw-r--r--fs/ocfs2/file.c4
-rw-r--r--fs/omfs/file.c2
-rw-r--r--fs/pipe.c2
-rw-r--r--fs/ramfs/file-mmu.c2
-rw-r--r--fs/ramfs/file-nommu.c2
-rw-r--r--fs/read_write.c9
-rw-r--r--fs/reiserfs/file.c2
-rw-r--r--fs/romfs/mmap-nommu.c1
-rw-r--r--fs/sysv/file.c2
-rw-r--r--fs/ubifs/file.c2
-rw-r--r--fs/udf/file.c2
-rw-r--r--fs/ufs/file.c2
-rw-r--r--fs/xfs/xfs_file.c2
-rw-r--r--include/linux/fs.h2
-rw-r--r--mm/shmem.c2
-rw-r--r--net/socket.c2
59 files changed, 11 insertions, 153 deletions
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index fa2db081505e..4006483c275f 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -471,3 +471,12 @@ in your dentry operations instead.
471[mandatory] 471[mandatory]
472 f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid 472 f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid
473 it entirely. 473 it entirely.
474--
475[mandatory]
476 never call ->read() and ->write() directly; use __vfs_{read,write} or
477 wrappers; instead of checking for ->write or ->read being NULL, look for
478 FMODE_CAN_{WRITE,READ} in file->f_mode.
479--
480[mandatory]
481 do _not_ use new_sync_{read,write} for ->read/->write; leave it NULL
482 instead.
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c
index df7d8cbee377..3f5c799b7fb5 100644
--- a/arch/s390/hypfs/inode.c
+++ b/arch/s390/hypfs/inode.c
@@ -437,8 +437,6 @@ struct dentry *hypfs_create_str(struct dentry *dir,
437static const struct file_operations hypfs_file_ops = { 437static const struct file_operations hypfs_file_ops = {
438 .open = hypfs_open, 438 .open = hypfs_open,
439 .release = hypfs_release, 439 .release = hypfs_release,
440 .read = new_sync_read,
441 .write = new_sync_write,
442 .read_iter = hypfs_read_iter, 440 .read_iter = hypfs_read_iter,
443 .write_iter = hypfs_write_iter, 441 .write_iter = hypfs_write_iter,
444 .llseek = no_llseek, 442 .llseek = no_llseek,
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index 9c4fd7a8e2e5..ad08400491ae 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -764,7 +764,6 @@ static const struct file_operations __maybe_unused port_fops = {
764 764
765static const struct file_operations zero_fops = { 765static const struct file_operations zero_fops = {
766 .llseek = zero_lseek, 766 .llseek = zero_lseek,
767 .read = new_sync_read,
768 .write = write_zero, 767 .write = write_zero,
769 .read_iter = read_iter_zero, 768 .read_iter = read_iter_zero,
770 .aio_write = aio_write_zero, 769 .aio_write = aio_write_zero,
@@ -776,7 +775,6 @@ static const struct file_operations zero_fops = {
776 775
777static const struct file_operations full_fops = { 776static const struct file_operations full_fops = {
778 .llseek = full_lseek, 777 .llseek = full_lseek,
779 .read = new_sync_read,
780 .read_iter = read_iter_zero, 778 .read_iter = read_iter_zero,
781 .write = write_full, 779 .write = write_full,
782}; 780};
diff --git a/drivers/char/raw.c b/drivers/char/raw.c
index 6e29bf2db536..5fc291c6157e 100644
--- a/drivers/char/raw.c
+++ b/drivers/char/raw.c
@@ -282,9 +282,7 @@ static long raw_ctl_compat_ioctl(struct file *file, unsigned int cmd,
282#endif 282#endif
283 283
284static const struct file_operations raw_fops = { 284static const struct file_operations raw_fops = {
285 .read = new_sync_read,
286 .read_iter = blkdev_read_iter, 285 .read_iter = blkdev_read_iter,
287 .write = new_sync_write,
288 .write_iter = blkdev_write_iter, 286 .write_iter = blkdev_write_iter,
289 .fsync = blkdev_fsync, 287 .fsync = blkdev_fsync,
290 .open = raw_open, 288 .open = raw_open,
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index 8362aef0c15e..9c91ff872485 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -1118,8 +1118,6 @@ static const struct file_operations macvtap_fops = {
1118 .owner = THIS_MODULE, 1118 .owner = THIS_MODULE,
1119 .open = macvtap_open, 1119 .open = macvtap_open,
1120 .release = macvtap_release, 1120 .release = macvtap_release,
1121 .read = new_sync_read,
1122 .write = new_sync_write,
1123 .read_iter = macvtap_read_iter, 1121 .read_iter = macvtap_read_iter,
1124 .write_iter = macvtap_write_iter, 1122 .write_iter = macvtap_write_iter,
1125 .poll = macvtap_poll, 1123 .poll = macvtap_poll,
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index b96b94cee760..e470ae59d405 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -2223,8 +2223,6 @@ static void tun_chr_show_fdinfo(struct seq_file *m, struct file *f)
2223static const struct file_operations tun_fops = { 2223static const struct file_operations tun_fops = {
2224 .owner = THIS_MODULE, 2224 .owner = THIS_MODULE,
2225 .llseek = no_llseek, 2225 .llseek = no_llseek,
2226 .read = new_sync_read,
2227 .write = new_sync_write,
2228 .read_iter = tun_chr_read_iter, 2226 .read_iter = tun_chr_read_iter,
2229 .write_iter = tun_chr_write_iter, 2227 .write_iter = tun_chr_write_iter,
2230 .poll = tun_chr_poll, 2228 .poll = tun_chr_poll,
diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index 5ebee6ca0a10..d73111ef949e 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -3128,9 +3128,7 @@ int ll_inode_permission(struct inode *inode, int mask)
3128 3128
3129/* -o localflock - only provides locally consistent flock locks */ 3129/* -o localflock - only provides locally consistent flock locks */
3130struct file_operations ll_file_operations = { 3130struct file_operations ll_file_operations = {
3131 .read = new_sync_read,
3132 .read_iter = ll_file_read_iter, 3131 .read_iter = ll_file_read_iter,
3133 .write = new_sync_write,
3134 .write_iter = ll_file_write_iter, 3132 .write_iter = ll_file_write_iter,
3135 .unlocked_ioctl = ll_file_ioctl, 3133 .unlocked_ioctl = ll_file_ioctl,
3136 .open = ll_file_open, 3134 .open = ll_file_open,
@@ -3143,9 +3141,7 @@ struct file_operations ll_file_operations = {
3143}; 3141};
3144 3142
3145struct file_operations ll_file_operations_flock = { 3143struct file_operations ll_file_operations_flock = {
3146 .read = new_sync_read,
3147 .read_iter = ll_file_read_iter, 3144 .read_iter = ll_file_read_iter,
3148 .write = new_sync_write,
3149 .write_iter = ll_file_write_iter, 3145 .write_iter = ll_file_write_iter,
3150 .unlocked_ioctl = ll_file_ioctl, 3146 .unlocked_ioctl = ll_file_ioctl,
3151 .open = ll_file_open, 3147 .open = ll_file_open,
@@ -3161,9 +3157,7 @@ struct file_operations ll_file_operations_flock = {
3161 3157
3162/* These are for -o noflock - to return ENOSYS on flock calls */ 3158/* These are for -o noflock - to return ENOSYS on flock calls */
3163struct file_operations ll_file_operations_noflock = { 3159struct file_operations ll_file_operations_noflock = {
3164 .read = new_sync_read,
3165 .read_iter = ll_file_read_iter, 3160 .read_iter = ll_file_read_iter,
3166 .write = new_sync_write,
3167 .write_iter = ll_file_write_iter, 3161 .write_iter = ll_file_write_iter,
3168 .unlocked_ioctl = ll_file_ioctl, 3162 .unlocked_ioctl = ll_file_ioctl,
3169 .open = ll_file_open, 3163 .open = ll_file_open,
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index a12315a78248..6bdb57069044 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1061,8 +1061,6 @@ static const struct file_operations ffs_epfile_operations = {
1061 .llseek = no_llseek, 1061 .llseek = no_llseek,
1062 1062
1063 .open = ffs_epfile_open, 1063 .open = ffs_epfile_open,
1064 .write = new_sync_write,
1065 .read = new_sync_read,
1066 .write_iter = ffs_epfile_write_iter, 1064 .write_iter = ffs_epfile_write_iter,
1067 .read_iter = ffs_epfile_read_iter, 1065 .read_iter = ffs_epfile_read_iter,
1068 .release = ffs_epfile_release, 1066 .release = ffs_epfile_release,
diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c
index 662ef2c1c62b..6af58c6dba5e 100644
--- a/drivers/usb/gadget/legacy/inode.c
+++ b/drivers/usb/gadget/legacy/inode.c
@@ -699,8 +699,6 @@ static const struct file_operations ep_io_operations = {
699 .open = ep_open, 699 .open = ep_open,
700 .release = ep_release, 700 .release = ep_release,
701 .llseek = no_llseek, 701 .llseek = no_llseek,
702 .read = new_sync_read,
703 .write = new_sync_write,
704 .unlocked_ioctl = ep_ioctl, 702 .unlocked_ioctl = ep_ioctl,
705 .read_iter = ep_read_iter, 703 .read_iter = ep_read_iter,
706 .write_iter = ep_write_iter, 704 .write_iter = ep_write_iter,
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 55cc9c80e187..d7fcb775311e 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -641,8 +641,6 @@ static const struct vm_operations_struct v9fs_mmap_file_vm_ops = {
641 641
642const struct file_operations v9fs_cached_file_operations = { 642const struct file_operations v9fs_cached_file_operations = {
643 .llseek = generic_file_llseek, 643 .llseek = generic_file_llseek,
644 .read = new_sync_read,
645 .write = new_sync_write,
646 .read_iter = generic_file_read_iter, 644 .read_iter = generic_file_read_iter,
647 .write_iter = generic_file_write_iter, 645 .write_iter = generic_file_write_iter,
648 .open = v9fs_file_open, 646 .open = v9fs_file_open,
@@ -654,8 +652,6 @@ const struct file_operations v9fs_cached_file_operations = {
654 652
655const struct file_operations v9fs_cached_file_operations_dotl = { 653const struct file_operations v9fs_cached_file_operations_dotl = {
656 .llseek = generic_file_llseek, 654 .llseek = generic_file_llseek,
657 .read = new_sync_read,
658 .write = new_sync_write,
659 .read_iter = generic_file_read_iter, 655 .read_iter = generic_file_read_iter,
660 .write_iter = generic_file_write_iter, 656 .write_iter = generic_file_write_iter,
661 .open = v9fs_file_open, 657 .open = v9fs_file_open,
@@ -668,8 +664,6 @@ const struct file_operations v9fs_cached_file_operations_dotl = {
668 664
669const struct file_operations v9fs_file_operations = { 665const struct file_operations v9fs_file_operations = {
670 .llseek = generic_file_llseek, 666 .llseek = generic_file_llseek,
671 .read = new_sync_read,
672 .write = new_sync_write,
673 .read_iter = v9fs_file_read_iter, 667 .read_iter = v9fs_file_read_iter,
674 .write_iter = v9fs_file_write_iter, 668 .write_iter = v9fs_file_write_iter,
675 .open = v9fs_file_open, 669 .open = v9fs_file_open,
@@ -681,8 +675,6 @@ const struct file_operations v9fs_file_operations = {
681 675
682const struct file_operations v9fs_file_operations_dotl = { 676const struct file_operations v9fs_file_operations_dotl = {
683 .llseek = generic_file_llseek, 677 .llseek = generic_file_llseek,
684 .read = new_sync_read,
685 .write = new_sync_write,
686 .read_iter = v9fs_file_read_iter, 678 .read_iter = v9fs_file_read_iter,
687 .write_iter = v9fs_file_write_iter, 679 .write_iter = v9fs_file_write_iter,
688 .open = v9fs_file_open, 680 .open = v9fs_file_open,
@@ -695,8 +687,6 @@ const struct file_operations v9fs_file_operations_dotl = {
695 687
696const struct file_operations v9fs_mmap_file_operations = { 688const struct file_operations v9fs_mmap_file_operations = {
697 .llseek = generic_file_llseek, 689 .llseek = generic_file_llseek,
698 .read = new_sync_read,
699 .write = new_sync_write,
700 .read_iter = v9fs_mmap_file_read_iter, 690 .read_iter = v9fs_mmap_file_read_iter,
701 .write_iter = v9fs_mmap_file_write_iter, 691 .write_iter = v9fs_mmap_file_write_iter,
702 .open = v9fs_file_open, 692 .open = v9fs_file_open,
@@ -708,8 +698,6 @@ const struct file_operations v9fs_mmap_file_operations = {
708 698
709const struct file_operations v9fs_mmap_file_operations_dotl = { 699const struct file_operations v9fs_mmap_file_operations_dotl = {
710 .llseek = generic_file_llseek, 700 .llseek = generic_file_llseek,
711 .read = new_sync_read,
712 .write = new_sync_write,
713 .read_iter = v9fs_mmap_file_read_iter, 701 .read_iter = v9fs_mmap_file_read_iter,
714 .write_iter = v9fs_mmap_file_write_iter, 702 .write_iter = v9fs_mmap_file_write_iter,
715 .open = v9fs_file_open, 703 .open = v9fs_file_open,
diff --git a/fs/adfs/file.c b/fs/adfs/file.c
index 07c9edce5aa7..46c0d5671cd5 100644
--- a/fs/adfs/file.c
+++ b/fs/adfs/file.c
@@ -23,11 +23,9 @@
23 23
24const struct file_operations adfs_file_operations = { 24const struct file_operations adfs_file_operations = {
25 .llseek = generic_file_llseek, 25 .llseek = generic_file_llseek,
26 .read = new_sync_read,
27 .read_iter = generic_file_read_iter, 26 .read_iter = generic_file_read_iter,
28 .mmap = generic_file_mmap, 27 .mmap = generic_file_mmap,
29 .fsync = generic_file_fsync, 28 .fsync = generic_file_fsync,
30 .write = new_sync_write,
31 .write_iter = generic_file_write_iter, 29 .write_iter = generic_file_write_iter,
32 .splice_read = generic_file_splice_read, 30 .splice_read = generic_file_splice_read,
33}; 31};
diff --git a/fs/affs/file.c b/fs/affs/file.c
index 3aa7eb66547e..7c1a3d4c19c2 100644
--- a/fs/affs/file.c
+++ b/fs/affs/file.c
@@ -969,9 +969,7 @@ int affs_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync)
969} 969}
970const struct file_operations affs_file_operations = { 970const struct file_operations affs_file_operations = {
971 .llseek = generic_file_llseek, 971 .llseek = generic_file_llseek,
972 .read = new_sync_read,
973 .read_iter = generic_file_read_iter, 972 .read_iter = generic_file_read_iter,
974 .write = new_sync_write,
975 .write_iter = generic_file_write_iter, 973 .write_iter = generic_file_write_iter,
976 .mmap = generic_file_mmap, 974 .mmap = generic_file_mmap,
977 .open = affs_file_open, 975 .open = affs_file_open,
diff --git a/fs/afs/file.c b/fs/afs/file.c
index 932ce07948b3..999bc3caec92 100644
--- a/fs/afs/file.c
+++ b/fs/afs/file.c
@@ -31,8 +31,6 @@ const struct file_operations afs_file_operations = {
31 .open = afs_open, 31 .open = afs_open,
32 .release = afs_release, 32 .release = afs_release,
33 .llseek = generic_file_llseek, 33 .llseek = generic_file_llseek,
34 .read = new_sync_read,
35 .write = new_sync_write,
36 .read_iter = generic_file_read_iter, 34 .read_iter = generic_file_read_iter,
37 .write_iter = afs_file_write, 35 .write_iter = afs_file_write,
38 .mmap = generic_file_readonly_mmap, 36 .mmap = generic_file_readonly_mmap,
diff --git a/fs/bfs/file.c b/fs/bfs/file.c
index e7f88ace1a25..97f1b5160155 100644
--- a/fs/bfs/file.c
+++ b/fs/bfs/file.c
@@ -23,9 +23,7 @@
23 23
24const struct file_operations bfs_file_operations = { 24const struct file_operations bfs_file_operations = {
25 .llseek = generic_file_llseek, 25 .llseek = generic_file_llseek,
26 .read = new_sync_read,
27 .read_iter = generic_file_read_iter, 26 .read_iter = generic_file_read_iter,
28 .write = new_sync_write,
29 .write_iter = generic_file_write_iter, 27 .write_iter = generic_file_write_iter,
30 .mmap = generic_file_mmap, 28 .mmap = generic_file_mmap,
31 .splice_read = generic_file_splice_read, 29 .splice_read = generic_file_splice_read,
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 2e522aed6584..b5e87896f517 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1659,8 +1659,6 @@ const struct file_operations def_blk_fops = {
1659 .open = blkdev_open, 1659 .open = blkdev_open,
1660 .release = blkdev_close, 1660 .release = blkdev_close,
1661 .llseek = block_llseek, 1661 .llseek = block_llseek,
1662 .read = new_sync_read,
1663 .write = new_sync_write,
1664 .read_iter = blkdev_read_iter, 1662 .read_iter = blkdev_read_iter,
1665 .write_iter = blkdev_write_iter, 1663 .write_iter = blkdev_write_iter,
1666 .mmap = generic_file_mmap, 1664 .mmap = generic_file_mmap,
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index aee18f84e315..cdc801c85105 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2806,8 +2806,6 @@ out:
2806 2806
2807const struct file_operations btrfs_file_operations = { 2807const struct file_operations btrfs_file_operations = {
2808 .llseek = btrfs_file_llseek, 2808 .llseek = btrfs_file_llseek,
2809 .read = new_sync_read,
2810 .write = new_sync_write,
2811 .read_iter = generic_file_read_iter, 2809 .read_iter = generic_file_read_iter,
2812 .splice_read = generic_file_splice_read, 2810 .splice_read = generic_file_splice_read,
2813 .write_iter = btrfs_file_write_iter, 2811 .write_iter = btrfs_file_write_iter,
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 139f2fea91a0..56237ea5fc22 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -1331,8 +1331,6 @@ const struct file_operations ceph_file_fops = {
1331 .open = ceph_open, 1331 .open = ceph_open,
1332 .release = ceph_release, 1332 .release = ceph_release,
1333 .llseek = ceph_llseek, 1333 .llseek = ceph_llseek,
1334 .read = new_sync_read,
1335 .write = new_sync_write,
1336 .read_iter = ceph_read_iter, 1334 .read_iter = ceph_read_iter,
1337 .write_iter = ceph_write_iter, 1335 .write_iter = ceph_write_iter,
1338 .mmap = ceph_mmap, 1336 .mmap = ceph_mmap,
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index d72fe37f5420..eaab4b2a0595 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -906,8 +906,6 @@ const struct inode_operations cifs_symlink_inode_ops = {
906}; 906};
907 907
908const struct file_operations cifs_file_ops = { 908const struct file_operations cifs_file_ops = {
909 .read = new_sync_read,
910 .write = new_sync_write,
911 .read_iter = cifs_loose_read_iter, 909 .read_iter = cifs_loose_read_iter,
912 .write_iter = cifs_file_write_iter, 910 .write_iter = cifs_file_write_iter,
913 .open = cifs_open, 911 .open = cifs_open,
@@ -926,8 +924,6 @@ const struct file_operations cifs_file_ops = {
926}; 924};
927 925
928const struct file_operations cifs_file_strict_ops = { 926const struct file_operations cifs_file_strict_ops = {
929 .read = new_sync_read,
930 .write = new_sync_write,
931 .read_iter = cifs_strict_readv, 927 .read_iter = cifs_strict_readv,
932 .write_iter = cifs_strict_writev, 928 .write_iter = cifs_strict_writev,
933 .open = cifs_open, 929 .open = cifs_open,
@@ -947,8 +943,6 @@ const struct file_operations cifs_file_strict_ops = {
947 943
948const struct file_operations cifs_file_direct_ops = { 944const struct file_operations cifs_file_direct_ops = {
949 /* BB reevaluate whether they can be done with directio, no cache */ 945 /* BB reevaluate whether they can be done with directio, no cache */
950 .read = new_sync_read,
951 .write = new_sync_write,
952 .read_iter = cifs_user_readv, 946 .read_iter = cifs_user_readv,
953 .write_iter = cifs_user_writev, 947 .write_iter = cifs_user_writev,
954 .open = cifs_open, 948 .open = cifs_open,
@@ -967,8 +961,6 @@ const struct file_operations cifs_file_direct_ops = {
967}; 961};
968 962
969const struct file_operations cifs_file_nobrl_ops = { 963const struct file_operations cifs_file_nobrl_ops = {
970 .read = new_sync_read,
971 .write = new_sync_write,
972 .read_iter = cifs_loose_read_iter, 964 .read_iter = cifs_loose_read_iter,
973 .write_iter = cifs_file_write_iter, 965 .write_iter = cifs_file_write_iter,
974 .open = cifs_open, 966 .open = cifs_open,
@@ -986,8 +978,6 @@ const struct file_operations cifs_file_nobrl_ops = {
986}; 978};
987 979
988const struct file_operations cifs_file_strict_nobrl_ops = { 980const struct file_operations cifs_file_strict_nobrl_ops = {
989 .read = new_sync_read,
990 .write = new_sync_write,
991 .read_iter = cifs_strict_readv, 981 .read_iter = cifs_strict_readv,
992 .write_iter = cifs_strict_writev, 982 .write_iter = cifs_strict_writev,
993 .open = cifs_open, 983 .open = cifs_open,
@@ -1006,8 +996,6 @@ const struct file_operations cifs_file_strict_nobrl_ops = {
1006 996
1007const struct file_operations cifs_file_direct_nobrl_ops = { 997const struct file_operations cifs_file_direct_nobrl_ops = {
1008 /* BB reevaluate whether they can be done with directio, no cache */ 998 /* BB reevaluate whether they can be done with directio, no cache */
1009 .read = new_sync_read,
1010 .write = new_sync_write,
1011 .read_iter = cifs_user_readv, 999 .read_iter = cifs_user_readv,
1012 .write_iter = cifs_user_writev, 1000 .write_iter = cifs_user_writev,
1013 .open = cifs_open, 1001 .open = cifs_open,
diff --git a/fs/coda/file.c b/fs/coda/file.c
index d9f1d9a85e04..1da3805f3ddc 100644
--- a/fs/coda/file.c
+++ b/fs/coda/file.c
@@ -219,8 +219,6 @@ int coda_fsync(struct file *coda_file, loff_t start, loff_t end, int datasync)
219 219
220const struct file_operations coda_file_operations = { 220const struct file_operations coda_file_operations = {
221 .llseek = generic_file_llseek, 221 .llseek = generic_file_llseek,
222 .read = new_sync_read,
223 .write = new_sync_write,
224 .read_iter = coda_file_read_iter, 222 .read_iter = coda_file_read_iter,
225 .write_iter = coda_file_write_iter, 223 .write_iter = coda_file_write_iter,
226 .mmap = coda_file_mmap, 224 .mmap = coda_file_mmap,
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c
index 79675089443d..a65786e26b05 100644
--- a/fs/ecryptfs/file.c
+++ b/fs/ecryptfs/file.c
@@ -358,9 +358,7 @@ const struct file_operations ecryptfs_dir_fops = {
358 358
359const struct file_operations ecryptfs_main_fops = { 359const struct file_operations ecryptfs_main_fops = {
360 .llseek = generic_file_llseek, 360 .llseek = generic_file_llseek,
361 .read = new_sync_read,
362 .read_iter = ecryptfs_read_update_atime, 361 .read_iter = ecryptfs_read_update_atime,
363 .write = new_sync_write,
364 .write_iter = generic_file_write_iter, 362 .write_iter = generic_file_write_iter,
365 .iterate = ecryptfs_readdir, 363 .iterate = ecryptfs_readdir,
366 .unlocked_ioctl = ecryptfs_unlocked_ioctl, 364 .unlocked_ioctl = ecryptfs_unlocked_ioctl,
diff --git a/fs/exofs/file.c b/fs/exofs/file.c
index 1a376b42d305..906de66e8e7e 100644
--- a/fs/exofs/file.c
+++ b/fs/exofs/file.c
@@ -67,8 +67,6 @@ static int exofs_flush(struct file *file, fl_owner_t id)
67 67
68const struct file_operations exofs_file_operations = { 68const struct file_operations exofs_file_operations = {
69 .llseek = generic_file_llseek, 69 .llseek = generic_file_llseek,
70 .read = new_sync_read,
71 .write = new_sync_write,
72 .read_iter = generic_file_read_iter, 70 .read_iter = generic_file_read_iter,
73 .write_iter = generic_file_write_iter, 71 .write_iter = generic_file_write_iter,
74 .mmap = generic_file_mmap, 72 .mmap = generic_file_mmap,
diff --git a/fs/ext2/file.c b/fs/ext2/file.c
index e31701713516..ef04fdb57dbf 100644
--- a/fs/ext2/file.c
+++ b/fs/ext2/file.c
@@ -92,8 +92,6 @@ int ext2_fsync(struct file *file, loff_t start, loff_t end, int datasync)
92 */ 92 */
93const struct file_operations ext2_file_operations = { 93const struct file_operations ext2_file_operations = {
94 .llseek = generic_file_llseek, 94 .llseek = generic_file_llseek,
95 .read = new_sync_read,
96 .write = new_sync_write,
97 .read_iter = generic_file_read_iter, 95 .read_iter = generic_file_read_iter,
98 .write_iter = generic_file_write_iter, 96 .write_iter = generic_file_write_iter,
99 .unlocked_ioctl = ext2_ioctl, 97 .unlocked_ioctl = ext2_ioctl,
@@ -111,8 +109,6 @@ const struct file_operations ext2_file_operations = {
111#ifdef CONFIG_FS_DAX 109#ifdef CONFIG_FS_DAX
112const struct file_operations ext2_dax_file_operations = { 110const struct file_operations ext2_dax_file_operations = {
113 .llseek = generic_file_llseek, 111 .llseek = generic_file_llseek,
114 .read = new_sync_read,
115 .write = new_sync_write,
116 .read_iter = generic_file_read_iter, 112 .read_iter = generic_file_read_iter,
117 .write_iter = generic_file_write_iter, 113 .write_iter = generic_file_write_iter,
118 .unlocked_ioctl = ext2_ioctl, 114 .unlocked_ioctl = ext2_ioctl,
diff --git a/fs/ext3/file.c b/fs/ext3/file.c
index a062fa1e1b11..3b8f650de22c 100644
--- a/fs/ext3/file.c
+++ b/fs/ext3/file.c
@@ -50,8 +50,6 @@ static int ext3_release_file (struct inode * inode, struct file * filp)
50 50
51const struct file_operations ext3_file_operations = { 51const struct file_operations ext3_file_operations = {
52 .llseek = generic_file_llseek, 52 .llseek = generic_file_llseek,
53 .read = new_sync_read,
54 .write = new_sync_write,
55 .read_iter = generic_file_read_iter, 53 .read_iter = generic_file_read_iter,
56 .write_iter = generic_file_write_iter, 54 .write_iter = generic_file_write_iter,
57 .unlocked_ioctl = ext3_ioctl, 55 .unlocked_ioctl = ext3_ioctl,
diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 598abbbe6786..9ad03036d9f5 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -607,8 +607,6 @@ loff_t ext4_llseek(struct file *file, loff_t offset, int whence)
607 607
608const struct file_operations ext4_file_operations = { 608const struct file_operations ext4_file_operations = {
609 .llseek = ext4_llseek, 609 .llseek = ext4_llseek,
610 .read = new_sync_read,
611 .write = new_sync_write,
612 .read_iter = generic_file_read_iter, 610 .read_iter = generic_file_read_iter,
613 .write_iter = ext4_file_write_iter, 611 .write_iter = ext4_file_write_iter,
614 .unlocked_ioctl = ext4_ioctl, 612 .unlocked_ioctl = ext4_ioctl,
@@ -627,8 +625,6 @@ const struct file_operations ext4_file_operations = {
627#ifdef CONFIG_FS_DAX 625#ifdef CONFIG_FS_DAX
628const struct file_operations ext4_dax_file_operations = { 626const struct file_operations ext4_dax_file_operations = {
629 .llseek = ext4_llseek, 627 .llseek = ext4_llseek,
630 .read = new_sync_read,
631 .write = new_sync_write,
632 .read_iter = generic_file_read_iter, 628 .read_iter = generic_file_read_iter,
633 .write_iter = ext4_file_write_iter, 629 .write_iter = ext4_file_write_iter,
634 .unlocked_ioctl = ext4_ioctl, 630 .unlocked_ioctl = ext4_ioctl,
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 98dac27bc3f7..df6a0596eccf 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1104,8 +1104,6 @@ long f2fs_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1104 1104
1105const struct file_operations f2fs_file_operations = { 1105const struct file_operations f2fs_file_operations = {
1106 .llseek = f2fs_llseek, 1106 .llseek = f2fs_llseek,
1107 .read = new_sync_read,
1108 .write = new_sync_write,
1109 .read_iter = generic_file_read_iter, 1107 .read_iter = generic_file_read_iter,
1110 .write_iter = generic_file_write_iter, 1108 .write_iter = generic_file_write_iter,
1111 .open = generic_file_open, 1109 .open = generic_file_open,
diff --git a/fs/fat/file.c b/fs/fat/file.c
index 8429c68e3057..1e98d333879f 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -170,8 +170,6 @@ int fat_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync)
170 170
171const struct file_operations fat_file_operations = { 171const struct file_operations fat_file_operations = {
172 .llseek = generic_file_llseek, 172 .llseek = generic_file_llseek,
173 .read = new_sync_read,
174 .write = new_sync_write,
175 .read_iter = generic_file_read_iter, 173 .read_iter = generic_file_read_iter,
176 .write_iter = generic_file_write_iter, 174 .write_iter = generic_file_write_iter,
177 .mmap = generic_file_mmap, 175 .mmap = generic_file_mmap,
diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
index 644f05744993..e5bbf748b698 100644
--- a/fs/fuse/cuse.c
+++ b/fs/fuse/cuse.c
@@ -177,8 +177,6 @@ static long cuse_file_compat_ioctl(struct file *file, unsigned int cmd,
177 177
178static const struct file_operations cuse_frontend_fops = { 178static const struct file_operations cuse_frontend_fops = {
179 .owner = THIS_MODULE, 179 .owner = THIS_MODULE,
180 .read = new_sync_read,
181 .write = new_sync_write,
182 .read_iter = cuse_read_iter, 180 .read_iter = cuse_read_iter,
183 .write_iter = cuse_write_iter, 181 .write_iter = cuse_write_iter,
184 .open = cuse_open, 182 .open = cuse_open,
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 727e139e1fea..e1afdd7abf90 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2953,9 +2953,7 @@ out:
2953 2953
2954static const struct file_operations fuse_file_operations = { 2954static const struct file_operations fuse_file_operations = {
2955 .llseek = fuse_file_llseek, 2955 .llseek = fuse_file_llseek,
2956 .read = new_sync_read,
2957 .read_iter = fuse_file_read_iter, 2956 .read_iter = fuse_file_read_iter,
2958 .write = new_sync_write,
2959 .write_iter = fuse_file_write_iter, 2957 .write_iter = fuse_file_write_iter,
2960 .mmap = fuse_file_mmap, 2958 .mmap = fuse_file_mmap,
2961 .open = fuse_open, 2959 .open = fuse_open,
@@ -2973,9 +2971,7 @@ static const struct file_operations fuse_file_operations = {
2973 2971
2974static const struct file_operations fuse_direct_io_file_operations = { 2972static const struct file_operations fuse_direct_io_file_operations = {
2975 .llseek = fuse_file_llseek, 2973 .llseek = fuse_file_llseek,
2976 .read = new_sync_read,
2977 .read_iter = fuse_direct_read_iter, 2974 .read_iter = fuse_direct_read_iter,
2978 .write = new_sync_write,
2979 .write_iter = fuse_direct_write_iter, 2975 .write_iter = fuse_direct_write_iter,
2980 .mmap = fuse_direct_mmap, 2976 .mmap = fuse_direct_mmap,
2981 .open = fuse_open, 2977 .open = fuse_open,
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index f6fc412b1100..614bb42cb7e1 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -1064,9 +1064,7 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl)
1064 1064
1065const struct file_operations gfs2_file_fops = { 1065const struct file_operations gfs2_file_fops = {
1066 .llseek = gfs2_llseek, 1066 .llseek = gfs2_llseek,
1067 .read = new_sync_read,
1068 .read_iter = generic_file_read_iter, 1067 .read_iter = generic_file_read_iter,
1069 .write = new_sync_write,
1070 .write_iter = gfs2_file_write_iter, 1068 .write_iter = gfs2_file_write_iter,
1071 .unlocked_ioctl = gfs2_ioctl, 1069 .unlocked_ioctl = gfs2_ioctl,
1072 .mmap = gfs2_mmap, 1070 .mmap = gfs2_mmap,
@@ -1096,9 +1094,7 @@ const struct file_operations gfs2_dir_fops = {
1096 1094
1097const struct file_operations gfs2_file_fops_nolock = { 1095const struct file_operations gfs2_file_fops_nolock = {
1098 .llseek = gfs2_llseek, 1096 .llseek = gfs2_llseek,
1099 .read = new_sync_read,
1100 .read_iter = generic_file_read_iter, 1097 .read_iter = generic_file_read_iter,
1101 .write = new_sync_write,
1102 .write_iter = gfs2_file_write_iter, 1098 .write_iter = gfs2_file_write_iter,
1103 .unlocked_ioctl = gfs2_ioctl, 1099 .unlocked_ioctl = gfs2_ioctl,
1104 .mmap = gfs2_mmap, 1100 .mmap = gfs2_mmap,
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c
index 98d4ea45bb70..9337065bcc67 100644
--- a/fs/hfs/inode.c
+++ b/fs/hfs/inode.c
@@ -674,9 +674,7 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end,
674 674
675static const struct file_operations hfs_file_operations = { 675static const struct file_operations hfs_file_operations = {
676 .llseek = generic_file_llseek, 676 .llseek = generic_file_llseek,
677 .read = new_sync_read,
678 .read_iter = generic_file_read_iter, 677 .read_iter = generic_file_read_iter,
679 .write = new_sync_write,
680 .write_iter = generic_file_write_iter, 678 .write_iter = generic_file_write_iter,
681 .mmap = generic_file_mmap, 679 .mmap = generic_file_mmap,
682 .splice_read = generic_file_splice_read, 680 .splice_read = generic_file_splice_read,
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c
index f541196d4ee9..5f86cadb0542 100644
--- a/fs/hfsplus/inode.c
+++ b/fs/hfsplus/inode.c
@@ -341,9 +341,7 @@ static const struct inode_operations hfsplus_file_inode_operations = {
341 341
342static const struct file_operations hfsplus_file_operations = { 342static const struct file_operations hfsplus_file_operations = {
343 .llseek = generic_file_llseek, 343 .llseek = generic_file_llseek,
344 .read = new_sync_read,
345 .read_iter = generic_file_read_iter, 344 .read_iter = generic_file_read_iter,
346 .write = new_sync_write,
347 .write_iter = generic_file_write_iter, 345 .write_iter = generic_file_write_iter,
348 .mmap = generic_file_mmap, 346 .mmap = generic_file_mmap,
349 .splice_read = generic_file_splice_read, 347 .splice_read = generic_file_splice_read,
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
index fd62cae0fdcb..e021188ca110 100644
--- a/fs/hostfs/hostfs_kern.c
+++ b/fs/hostfs/hostfs_kern.c
@@ -378,11 +378,9 @@ static int hostfs_fsync(struct file *file, loff_t start, loff_t end,
378 378
379static const struct file_operations hostfs_file_fops = { 379static const struct file_operations hostfs_file_fops = {
380 .llseek = generic_file_llseek, 380 .llseek = generic_file_llseek,
381 .read = new_sync_read,
382 .splice_read = generic_file_splice_read, 381 .splice_read = generic_file_splice_read,
383 .read_iter = generic_file_read_iter, 382 .read_iter = generic_file_read_iter,
384 .write_iter = generic_file_write_iter, 383 .write_iter = generic_file_write_iter,
385 .write = new_sync_write,
386 .mmap = generic_file_mmap, 384 .mmap = generic_file_mmap,
387 .open = hostfs_file_open, 385 .open = hostfs_file_open,
388 .release = hostfs_file_release, 386 .release = hostfs_file_release,
diff --git a/fs/hpfs/file.c b/fs/hpfs/file.c
index 7f54e5f76cec..6d8cfe9b52d6 100644
--- a/fs/hpfs/file.c
+++ b/fs/hpfs/file.c
@@ -197,9 +197,7 @@ const struct address_space_operations hpfs_aops = {
197const struct file_operations hpfs_file_ops = 197const struct file_operations hpfs_file_ops =
198{ 198{
199 .llseek = generic_file_llseek, 199 .llseek = generic_file_llseek,
200 .read = new_sync_read,
201 .read_iter = generic_file_read_iter, 200 .read_iter = generic_file_read_iter,
202 .write = new_sync_write,
203 .write_iter = generic_file_write_iter, 201 .write_iter = generic_file_write_iter,
204 .mmap = generic_file_mmap, 202 .mmap = generic_file_mmap,
205 .release = hpfs_file_release, 203 .release = hpfs_file_release,
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 5291c14ee6b8..8c2dad629e7c 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -696,7 +696,6 @@ static void init_once(void *foo)
696} 696}
697 697
698const struct file_operations hugetlbfs_file_operations = { 698const struct file_operations hugetlbfs_file_operations = {
699 .read = new_sync_read,
700 .read_iter = hugetlbfs_read_iter, 699 .read_iter = hugetlbfs_read_iter,
701 .mmap = hugetlbfs_file_mmap, 700 .mmap = hugetlbfs_file_mmap,
702 .fsync = noop_fsync, 701 .fsync = noop_fsync,
diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c
index 64989ca9ba90..f509f62e12f6 100644
--- a/fs/jffs2/file.c
+++ b/fs/jffs2/file.c
@@ -51,9 +51,7 @@ const struct file_operations jffs2_file_operations =
51{ 51{
52 .llseek = generic_file_llseek, 52 .llseek = generic_file_llseek,
53 .open = generic_file_open, 53 .open = generic_file_open,
54 .read = new_sync_read,
55 .read_iter = generic_file_read_iter, 54 .read_iter = generic_file_read_iter,
56 .write = new_sync_write,
57 .write_iter = generic_file_write_iter, 55 .write_iter = generic_file_write_iter,
58 .unlocked_ioctl=jffs2_ioctl, 56 .unlocked_ioctl=jffs2_ioctl,
59 .mmap = generic_file_readonly_mmap, 57 .mmap = generic_file_readonly_mmap,
diff --git a/fs/jfs/file.c b/fs/jfs/file.c
index 10815f8dfd8b..ae46788b9723 100644
--- a/fs/jfs/file.c
+++ b/fs/jfs/file.c
@@ -151,8 +151,6 @@ const struct inode_operations jfs_file_inode_operations = {
151const struct file_operations jfs_file_operations = { 151const struct file_operations jfs_file_operations = {
152 .open = jfs_open, 152 .open = jfs_open,
153 .llseek = generic_file_llseek, 153 .llseek = generic_file_llseek,
154 .write = new_sync_write,
155 .read = new_sync_read,
156 .read_iter = generic_file_read_iter, 154 .read_iter = generic_file_read_iter,
157 .write_iter = generic_file_write_iter, 155 .write_iter = generic_file_write_iter,
158 .mmap = generic_file_mmap, 156 .mmap = generic_file_mmap,
diff --git a/fs/logfs/file.c b/fs/logfs/file.c
index 8538752df2f6..b2c13f739ffa 100644
--- a/fs/logfs/file.c
+++ b/fs/logfs/file.c
@@ -271,8 +271,6 @@ const struct file_operations logfs_reg_fops = {
271 .llseek = generic_file_llseek, 271 .llseek = generic_file_llseek,
272 .mmap = generic_file_readonly_mmap, 272 .mmap = generic_file_readonly_mmap,
273 .open = generic_file_open, 273 .open = generic_file_open,
274 .read = new_sync_read,
275 .write = new_sync_write,
276}; 274};
277 275
278const struct address_space_operations logfs_reg_aops = { 276const struct address_space_operations logfs_reg_aops = {
diff --git a/fs/minix/file.c b/fs/minix/file.c
index a967de085ac0..6d63e27ec961 100644
--- a/fs/minix/file.c
+++ b/fs/minix/file.c
@@ -14,9 +14,7 @@
14 */ 14 */
15const struct file_operations minix_file_operations = { 15const struct file_operations minix_file_operations = {
16 .llseek = generic_file_llseek, 16 .llseek = generic_file_llseek,
17 .read = new_sync_read,
18 .read_iter = generic_file_read_iter, 17 .read_iter = generic_file_read_iter,
19 .write = new_sync_write,
20 .write_iter = generic_file_write_iter, 18 .write_iter = generic_file_write_iter,
21 .mmap = generic_file_mmap, 19 .mmap = generic_file_mmap,
22 .fsync = generic_file_fsync, 20 .fsync = generic_file_fsync,
diff --git a/fs/ncpfs/file.c b/fs/ncpfs/file.c
index 5f9d5624e377..479bf8db264e 100644
--- a/fs/ncpfs/file.c
+++ b/fs/ncpfs/file.c
@@ -249,8 +249,6 @@ static int ncp_release(struct inode *inode, struct file *file) {
249const struct file_operations ncp_file_operations = 249const struct file_operations ncp_file_operations =
250{ 250{
251 .llseek = generic_file_llseek, 251 .llseek = generic_file_llseek,
252 .read = new_sync_read,
253 .write = new_sync_write,
254 .read_iter = ncp_file_read_iter, 252 .read_iter = ncp_file_read_iter,
255 .write_iter = ncp_file_write_iter, 253 .write_iter = ncp_file_write_iter,
256 .unlocked_ioctl = ncp_ioctl, 254 .unlocked_ioctl = ncp_ioctl,
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 37b15582e0de..f6a3adedf027 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -926,8 +926,6 @@ EXPORT_SYMBOL_GPL(nfs_flock);
926 926
927const struct file_operations nfs_file_operations = { 927const struct file_operations nfs_file_operations = {
928 .llseek = nfs_file_llseek, 928 .llseek = nfs_file_llseek,
929 .read = new_sync_read,
930 .write = new_sync_write,
931 .read_iter = nfs_file_read, 929 .read_iter = nfs_file_read,
932 .write_iter = nfs_file_write, 930 .write_iter = nfs_file_write,
933 .mmap = nfs_file_mmap, 931 .mmap = nfs_file_mmap,
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c
index 8b46389c4c5b..0181cde1d102 100644
--- a/fs/nfs/nfs4file.c
+++ b/fs/nfs/nfs4file.c
@@ -170,8 +170,6 @@ const struct file_operations nfs4_file_operations = {
170#else 170#else
171 .llseek = nfs_file_llseek, 171 .llseek = nfs_file_llseek,
172#endif 172#endif
173 .read = new_sync_read,
174 .write = new_sync_write,
175 .read_iter = nfs_file_read, 173 .read_iter = nfs_file_read,
176 .write_iter = nfs_file_write, 174 .write_iter = nfs_file_write,
177 .mmap = nfs_file_mmap, 175 .mmap = nfs_file_mmap,
diff --git a/fs/nilfs2/file.c b/fs/nilfs2/file.c
index a8c728acb7a8..54575e3cc1a2 100644
--- a/fs/nilfs2/file.c
+++ b/fs/nilfs2/file.c
@@ -143,8 +143,6 @@ static int nilfs_file_mmap(struct file *file, struct vm_area_struct *vma)
143 */ 143 */
144const struct file_operations nilfs_file_operations = { 144const struct file_operations nilfs_file_operations = {
145 .llseek = generic_file_llseek, 145 .llseek = generic_file_llseek,
146 .read = new_sync_read,
147 .write = new_sync_write,
148 .read_iter = generic_file_read_iter, 146 .read_iter = generic_file_read_iter,
149 .write_iter = generic_file_write_iter, 147 .write_iter = generic_file_write_iter,
150 .unlocked_ioctl = nilfs_ioctl, 148 .unlocked_ioctl = nilfs_ioctl,
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
index c1da78dad1af..840e95e3f1d2 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -2048,10 +2048,8 @@ static int ntfs_file_fsync(struct file *filp, loff_t start, loff_t end,
2048 2048
2049const struct file_operations ntfs_file_ops = { 2049const struct file_operations ntfs_file_ops = {
2050 .llseek = generic_file_llseek, 2050 .llseek = generic_file_llseek,
2051 .read = new_sync_read,
2052 .read_iter = generic_file_read_iter, 2051 .read_iter = generic_file_read_iter,
2053#ifdef NTFS_RW 2052#ifdef NTFS_RW
2054 .write = new_sync_write,
2055 .write_iter = ntfs_file_write_iter, 2053 .write_iter = ntfs_file_write_iter,
2056 .fsync = ntfs_file_fsync, 2054 .fsync = ntfs_file_fsync,
2057#endif /* NTFS_RW */ 2055#endif /* NTFS_RW */
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 266845de2100..0a6ec7e6efd8 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2676,8 +2676,6 @@ const struct inode_operations ocfs2_special_file_iops = {
2676 */ 2676 */
2677const struct file_operations ocfs2_fops = { 2677const struct file_operations ocfs2_fops = {
2678 .llseek = ocfs2_file_llseek, 2678 .llseek = ocfs2_file_llseek,
2679 .read = new_sync_read,
2680 .write = new_sync_write,
2681 .mmap = ocfs2_mmap, 2679 .mmap = ocfs2_mmap,
2682 .fsync = ocfs2_sync_file, 2680 .fsync = ocfs2_sync_file,
2683 .release = ocfs2_file_release, 2681 .release = ocfs2_file_release,
@@ -2724,8 +2722,6 @@ const struct file_operations ocfs2_dops = {
2724 */ 2722 */
2725const struct file_operations ocfs2_fops_no_plocks = { 2723const struct file_operations ocfs2_fops_no_plocks = {
2726 .llseek = ocfs2_file_llseek, 2724 .llseek = ocfs2_file_llseek,
2727 .read = new_sync_read,
2728 .write = new_sync_write,
2729 .mmap = ocfs2_mmap, 2725 .mmap = ocfs2_mmap,
2730 .fsync = ocfs2_sync_file, 2726 .fsync = ocfs2_sync_file,
2731 .release = ocfs2_file_release, 2727 .release = ocfs2_file_release,
diff --git a/fs/omfs/file.c b/fs/omfs/file.c
index 902e88527fce..f993be7f2156 100644
--- a/fs/omfs/file.c
+++ b/fs/omfs/file.c
@@ -337,8 +337,6 @@ static sector_t omfs_bmap(struct address_space *mapping, sector_t block)
337 337
338const struct file_operations omfs_file_operations = { 338const struct file_operations omfs_file_operations = {
339 .llseek = generic_file_llseek, 339 .llseek = generic_file_llseek,
340 .read = new_sync_read,
341 .write = new_sync_write,
342 .read_iter = generic_file_read_iter, 340 .read_iter = generic_file_read_iter,
343 .write_iter = generic_file_write_iter, 341 .write_iter = generic_file_write_iter,
344 .mmap = generic_file_mmap, 342 .mmap = generic_file_mmap,
diff --git a/fs/pipe.c b/fs/pipe.c
index 2d084f2d0b83..822da5b7cff0 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -946,9 +946,7 @@ err:
946const struct file_operations pipefifo_fops = { 946const struct file_operations pipefifo_fops = {
947 .open = fifo_open, 947 .open = fifo_open,
948 .llseek = no_llseek, 948 .llseek = no_llseek,
949 .read = new_sync_read,
950 .read_iter = pipe_read, 949 .read_iter = pipe_read,
951 .write = new_sync_write,
952 .write_iter = pipe_write, 950 .write_iter = pipe_write,
953 .poll = pipe_poll, 951 .poll = pipe_poll,
954 .unlocked_ioctl = pipe_ioctl, 952 .unlocked_ioctl = pipe_ioctl,
diff --git a/fs/ramfs/file-mmu.c b/fs/ramfs/file-mmu.c
index 4f56de822d2f..183a212694bf 100644
--- a/fs/ramfs/file-mmu.c
+++ b/fs/ramfs/file-mmu.c
@@ -31,9 +31,7 @@
31#include "internal.h" 31#include "internal.h"
32 32
33const struct file_operations ramfs_file_operations = { 33const struct file_operations ramfs_file_operations = {
34 .read = new_sync_read,
35 .read_iter = generic_file_read_iter, 34 .read_iter = generic_file_read_iter,
36 .write = new_sync_write,
37 .write_iter = generic_file_write_iter, 35 .write_iter = generic_file_write_iter,
38 .mmap = generic_file_mmap, 36 .mmap = generic_file_mmap,
39 .fsync = noop_fsync, 37 .fsync = noop_fsync,
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c
index f6ab41b39612..0b38befa69f3 100644
--- a/fs/ramfs/file-nommu.c
+++ b/fs/ramfs/file-nommu.c
@@ -44,9 +44,7 @@ const struct file_operations ramfs_file_operations = {
44 .mmap_capabilities = ramfs_mmap_capabilities, 44 .mmap_capabilities = ramfs_mmap_capabilities,
45 .mmap = ramfs_nommu_mmap, 45 .mmap = ramfs_nommu_mmap,
46 .get_unmapped_area = ramfs_nommu_get_unmapped_area, 46 .get_unmapped_area = ramfs_nommu_get_unmapped_area,
47 .read = new_sync_read,
48 .read_iter = generic_file_read_iter, 47 .read_iter = generic_file_read_iter,
49 .write = new_sync_write,
50 .write_iter = generic_file_write_iter, 48 .write_iter = generic_file_write_iter,
51 .fsync = noop_fsync, 49 .fsync = noop_fsync,
52 .splice_read = generic_file_splice_read, 50 .splice_read = generic_file_splice_read,
diff --git a/fs/read_write.c b/fs/read_write.c
index c75e6ef0952c..3ae8eee3b82a 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -28,7 +28,6 @@ typedef ssize_t (*iter_fn_t)(struct kiocb *, struct iov_iter *);
28 28
29const struct file_operations generic_ro_fops = { 29const struct file_operations generic_ro_fops = {
30 .llseek = generic_file_llseek, 30 .llseek = generic_file_llseek,
31 .read = new_sync_read,
32 .read_iter = generic_file_read_iter, 31 .read_iter = generic_file_read_iter,
33 .mmap = generic_file_readonly_mmap, 32 .mmap = generic_file_readonly_mmap,
34 .splice_read = generic_file_splice_read, 33 .splice_read = generic_file_splice_read,
@@ -428,7 +427,7 @@ ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *pp
428 427
429EXPORT_SYMBOL(do_sync_read); 428EXPORT_SYMBOL(do_sync_read);
430 429
431ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos) 430static ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
432{ 431{
433 struct iovec iov = { .iov_base = buf, .iov_len = len }; 432 struct iovec iov = { .iov_base = buf, .iov_len = len };
434 struct kiocb kiocb; 433 struct kiocb kiocb;
@@ -445,8 +444,6 @@ ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *p
445 return ret; 444 return ret;
446} 445}
447 446
448EXPORT_SYMBOL(new_sync_read);
449
450ssize_t __vfs_read(struct file *file, char __user *buf, size_t count, 447ssize_t __vfs_read(struct file *file, char __user *buf, size_t count,
451 loff_t *pos) 448 loff_t *pos)
452{ 449{
@@ -505,7 +502,7 @@ ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, lof
505 502
506EXPORT_SYMBOL(do_sync_write); 503EXPORT_SYMBOL(do_sync_write);
507 504
508ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos) 505static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
509{ 506{
510 struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len }; 507 struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
511 struct kiocb kiocb; 508 struct kiocb kiocb;
@@ -522,8 +519,6 @@ ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, lo
522 return ret; 519 return ret;
523} 520}
524 521
525EXPORT_SYMBOL(new_sync_write);
526
527ssize_t __vfs_write(struct file *file, const char __user *p, size_t count, 522ssize_t __vfs_write(struct file *file, const char __user *p, size_t count,
528 loff_t *pos) 523 loff_t *pos)
529{ 524{
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
index 751dd3f4346b..96a1bcf33db4 100644
--- a/fs/reiserfs/file.c
+++ b/fs/reiserfs/file.c
@@ -243,8 +243,6 @@ drop_write_lock:
243} 243}
244 244
245const struct file_operations reiserfs_file_operations = { 245const struct file_operations reiserfs_file_operations = {
246 .read = new_sync_read,
247 .write = new_sync_write,
248 .unlocked_ioctl = reiserfs_ioctl, 246 .unlocked_ioctl = reiserfs_ioctl,
249#ifdef CONFIG_COMPAT 247#ifdef CONFIG_COMPAT
250 .compat_ioctl = reiserfs_compat_ioctl, 248 .compat_ioctl = reiserfs_compat_ioctl,
diff --git a/fs/romfs/mmap-nommu.c b/fs/romfs/mmap-nommu.c
index 7da9e2153953..1118a0dc6b45 100644
--- a/fs/romfs/mmap-nommu.c
+++ b/fs/romfs/mmap-nommu.c
@@ -81,7 +81,6 @@ static unsigned romfs_mmap_capabilities(struct file *file)
81 81
82const struct file_operations romfs_ro_fops = { 82const struct file_operations romfs_ro_fops = {
83 .llseek = generic_file_llseek, 83 .llseek = generic_file_llseek,
84 .read = new_sync_read,
85 .read_iter = generic_file_read_iter, 84 .read_iter = generic_file_read_iter,
86 .splice_read = generic_file_splice_read, 85 .splice_read = generic_file_splice_read,
87 .mmap = romfs_mmap, 86 .mmap = romfs_mmap,
diff --git a/fs/sysv/file.c b/fs/sysv/file.c
index b00811c75b24..a48e30410ad1 100644
--- a/fs/sysv/file.c
+++ b/fs/sysv/file.c
@@ -21,9 +21,7 @@
21 */ 21 */
22const struct file_operations sysv_file_operations = { 22const struct file_operations sysv_file_operations = {
23 .llseek = generic_file_llseek, 23 .llseek = generic_file_llseek,
24 .read = new_sync_read,
25 .read_iter = generic_file_read_iter, 24 .read_iter = generic_file_read_iter,
26 .write = new_sync_write,
27 .write_iter = generic_file_write_iter, 25 .write_iter = generic_file_write_iter,
28 .mmap = generic_file_mmap, 26 .mmap = generic_file_mmap,
29 .fsync = generic_file_fsync, 27 .fsync = generic_file_fsync,
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index c3d15fe83403..475b15635f11 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -1580,8 +1580,6 @@ const struct inode_operations ubifs_symlink_inode_operations = {
1580 1580
1581const struct file_operations ubifs_file_operations = { 1581const struct file_operations ubifs_file_operations = {
1582 .llseek = generic_file_llseek, 1582 .llseek = generic_file_llseek,
1583 .read = new_sync_read,
1584 .write = new_sync_write,
1585 .read_iter = generic_file_read_iter, 1583 .read_iter = generic_file_read_iter,
1586 .write_iter = ubifs_write_iter, 1584 .write_iter = ubifs_write_iter,
1587 .mmap = ubifs_file_mmap, 1585 .mmap = ubifs_file_mmap,
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 7f885cc8b0b7..74050bff64f4 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -240,12 +240,10 @@ static int udf_release_file(struct inode *inode, struct file *filp)
240} 240}
241 241
242const struct file_operations udf_file_operations = { 242const struct file_operations udf_file_operations = {
243 .read = new_sync_read,
244 .read_iter = generic_file_read_iter, 243 .read_iter = generic_file_read_iter,
245 .unlocked_ioctl = udf_ioctl, 244 .unlocked_ioctl = udf_ioctl,
246 .open = generic_file_open, 245 .open = generic_file_open,
247 .mmap = generic_file_mmap, 246 .mmap = generic_file_mmap,
248 .write = new_sync_write,
249 .write_iter = udf_file_write_iter, 247 .write_iter = udf_file_write_iter,
250 .release = udf_release_file, 248 .release = udf_release_file,
251 .fsync = generic_file_fsync, 249 .fsync = generic_file_fsync,
diff --git a/fs/ufs/file.c b/fs/ufs/file.c
index c84ec010a676..042ddbf110cc 100644
--- a/fs/ufs/file.c
+++ b/fs/ufs/file.c
@@ -35,9 +35,7 @@
35 35
36const struct file_operations ufs_file_operations = { 36const struct file_operations ufs_file_operations = {
37 .llseek = generic_file_llseek, 37 .llseek = generic_file_llseek,
38 .read = new_sync_read,
39 .read_iter = generic_file_read_iter, 38 .read_iter = generic_file_read_iter,
40 .write = new_sync_write,
41 .write_iter = generic_file_write_iter, 39 .write_iter = generic_file_write_iter,
42 .mmap = generic_file_mmap, 40 .mmap = generic_file_mmap,
43 .open = generic_file_open, 41 .open = generic_file_open,
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index f44212fae653..44856c3b9617 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -1386,8 +1386,6 @@ xfs_file_llseek(
1386 1386
1387const struct file_operations xfs_file_operations = { 1387const struct file_operations xfs_file_operations = {
1388 .llseek = xfs_file_llseek, 1388 .llseek = xfs_file_llseek,
1389 .read = new_sync_read,
1390 .write = new_sync_write,
1391 .read_iter = xfs_file_read_iter, 1389 .read_iter = xfs_file_read_iter,
1392 .write_iter = xfs_file_write_iter, 1390 .write_iter = xfs_file_write_iter,
1393 .splice_read = xfs_file_splice_read, 1391 .splice_read = xfs_file_splice_read,
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 4a1cb00bd805..cade1304d27b 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2576,8 +2576,6 @@ extern ssize_t generic_file_direct_write(struct kiocb *, struct iov_iter *, loff
2576extern ssize_t generic_perform_write(struct file *, struct iov_iter *, loff_t); 2576extern ssize_t generic_perform_write(struct file *, struct iov_iter *, loff_t);
2577extern ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos); 2577extern ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos);
2578extern ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos); 2578extern ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos);
2579extern ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos);
2580extern ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos);
2581 2579
2582ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos); 2580ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos);
2583ssize_t vfs_iter_write(struct file *file, struct iov_iter *iter, loff_t *ppos); 2581ssize_t vfs_iter_write(struct file *file, struct iov_iter *iter, loff_t *ppos);
diff --git a/mm/shmem.c b/mm/shmem.c
index 80b360c7bcd1..1ea2400b5245 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -3118,8 +3118,6 @@ static const struct file_operations shmem_file_operations = {
3118 .mmap = shmem_mmap, 3118 .mmap = shmem_mmap,
3119#ifdef CONFIG_TMPFS 3119#ifdef CONFIG_TMPFS
3120 .llseek = shmem_file_llseek, 3120 .llseek = shmem_file_llseek,
3121 .read = new_sync_read,
3122 .write = new_sync_write,
3123 .read_iter = shmem_file_read_iter, 3121 .read_iter = shmem_file_read_iter,
3124 .write_iter = generic_file_write_iter, 3122 .write_iter = generic_file_write_iter,
3125 .fsync = noop_fsync, 3123 .fsync = noop_fsync,
diff --git a/net/socket.c b/net/socket.c
index 5b0126234606..3e33959f3ce5 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -140,8 +140,6 @@ static ssize_t sock_splice_read(struct file *file, loff_t *ppos,
140static const struct file_operations socket_file_ops = { 140static const struct file_operations socket_file_ops = {
141 .owner = THIS_MODULE, 141 .owner = THIS_MODULE,
142 .llseek = no_llseek, 142 .llseek = no_llseek,
143 .read = new_sync_read,
144 .write = new_sync_write,
145 .read_iter = sock_read_iter, 143 .read_iter = sock_read_iter,
146 .write_iter = sock_write_iter, 144 .write_iter = sock_write_iter,
147 .poll = sock_poll, 145 .poll = sock_poll,