mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
86cc05840a
commit
5d5d568975
|
@ -471,3 +471,12 @@ in your dentry operations instead.
|
|||
[mandatory]
|
||||
f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid
|
||||
it entirely.
|
||||
--
|
||||
[mandatory]
|
||||
never call ->read() and ->write() directly; use __vfs_{read,write} or
|
||||
wrappers; instead of checking for ->write or ->read being NULL, look for
|
||||
FMODE_CAN_{WRITE,READ} in file->f_mode.
|
||||
--
|
||||
[mandatory]
|
||||
do _not_ use new_sync_{read,write} for ->read/->write; leave it NULL
|
||||
instead.
|
||||
|
|
|
@ -437,8 +437,6 @@ struct dentry *hypfs_create_str(struct dentry *dir,
|
|||
static const struct file_operations hypfs_file_ops = {
|
||||
.open = hypfs_open,
|
||||
.release = hypfs_release,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = hypfs_read_iter,
|
||||
.write_iter = hypfs_write_iter,
|
||||
.llseek = no_llseek,
|
||||
|
|
|
@ -764,7 +764,6 @@ static const struct file_operations __maybe_unused port_fops = {
|
|||
|
||||
static const struct file_operations zero_fops = {
|
||||
.llseek = zero_lseek,
|
||||
.read = new_sync_read,
|
||||
.write = write_zero,
|
||||
.read_iter = read_iter_zero,
|
||||
.aio_write = aio_write_zero,
|
||||
|
@ -776,7 +775,6 @@ static const struct file_operations zero_fops = {
|
|||
|
||||
static const struct file_operations full_fops = {
|
||||
.llseek = full_lseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = read_iter_zero,
|
||||
.write = write_full,
|
||||
};
|
||||
|
|
|
@ -282,9 +282,7 @@ static long raw_ctl_compat_ioctl(struct file *file, unsigned int cmd,
|
|||
#endif
|
||||
|
||||
static const struct file_operations raw_fops = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = blkdev_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = blkdev_write_iter,
|
||||
.fsync = blkdev_fsync,
|
||||
.open = raw_open,
|
||||
|
|
|
@ -1118,8 +1118,6 @@ static const struct file_operations macvtap_fops = {
|
|||
.owner = THIS_MODULE,
|
||||
.open = macvtap_open,
|
||||
.release = macvtap_release,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = macvtap_read_iter,
|
||||
.write_iter = macvtap_write_iter,
|
||||
.poll = macvtap_poll,
|
||||
|
|
|
@ -2223,8 +2223,6 @@ static void tun_chr_show_fdinfo(struct seq_file *m, struct file *f)
|
|||
static const struct file_operations tun_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = tun_chr_read_iter,
|
||||
.write_iter = tun_chr_write_iter,
|
||||
.poll = tun_chr_poll,
|
||||
|
|
|
@ -3128,9 +3128,7 @@ int ll_inode_permission(struct inode *inode, int mask)
|
|||
|
||||
/* -o localflock - only provides locally consistent flock locks */
|
||||
struct file_operations ll_file_operations = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = ll_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = ll_file_write_iter,
|
||||
.unlocked_ioctl = ll_file_ioctl,
|
||||
.open = ll_file_open,
|
||||
|
@ -3143,9 +3141,7 @@ struct file_operations ll_file_operations = {
|
|||
};
|
||||
|
||||
struct file_operations ll_file_operations_flock = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = ll_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = ll_file_write_iter,
|
||||
.unlocked_ioctl = ll_file_ioctl,
|
||||
.open = ll_file_open,
|
||||
|
@ -3161,9 +3157,7 @@ struct file_operations ll_file_operations_flock = {
|
|||
|
||||
/* These are for -o noflock - to return ENOSYS on flock calls */
|
||||
struct file_operations ll_file_operations_noflock = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = ll_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = ll_file_write_iter,
|
||||
.unlocked_ioctl = ll_file_ioctl,
|
||||
.open = ll_file_open,
|
||||
|
|
|
@ -1061,8 +1061,6 @@ static const struct file_operations ffs_epfile_operations = {
|
|||
.llseek = no_llseek,
|
||||
|
||||
.open = ffs_epfile_open,
|
||||
.write = new_sync_write,
|
||||
.read = new_sync_read,
|
||||
.write_iter = ffs_epfile_write_iter,
|
||||
.read_iter = ffs_epfile_read_iter,
|
||||
.release = ffs_epfile_release,
|
||||
|
|
|
@ -699,8 +699,6 @@ static const struct file_operations ep_io_operations = {
|
|||
.open = ep_open,
|
||||
.release = ep_release,
|
||||
.llseek = no_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.unlocked_ioctl = ep_ioctl,
|
||||
.read_iter = ep_read_iter,
|
||||
.write_iter = ep_write_iter,
|
||||
|
|
|
@ -641,8 +641,6 @@ static const struct vm_operations_struct v9fs_mmap_file_vm_ops = {
|
|||
|
||||
const struct file_operations v9fs_cached_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.open = v9fs_file_open,
|
||||
|
@ -654,8 +652,6 @@ const struct file_operations v9fs_cached_file_operations = {
|
|||
|
||||
const struct file_operations v9fs_cached_file_operations_dotl = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.open = v9fs_file_open,
|
||||
|
@ -668,8 +664,6 @@ const struct file_operations v9fs_cached_file_operations_dotl = {
|
|||
|
||||
const struct file_operations v9fs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = v9fs_file_read_iter,
|
||||
.write_iter = v9fs_file_write_iter,
|
||||
.open = v9fs_file_open,
|
||||
|
@ -681,8 +675,6 @@ const struct file_operations v9fs_file_operations = {
|
|||
|
||||
const struct file_operations v9fs_file_operations_dotl = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = v9fs_file_read_iter,
|
||||
.write_iter = v9fs_file_write_iter,
|
||||
.open = v9fs_file_open,
|
||||
|
@ -695,8 +687,6 @@ const struct file_operations v9fs_file_operations_dotl = {
|
|||
|
||||
const struct file_operations v9fs_mmap_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = v9fs_mmap_file_read_iter,
|
||||
.write_iter = v9fs_mmap_file_write_iter,
|
||||
.open = v9fs_file_open,
|
||||
|
@ -708,8 +698,6 @@ const struct file_operations v9fs_mmap_file_operations = {
|
|||
|
||||
const struct file_operations v9fs_mmap_file_operations_dotl = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = v9fs_mmap_file_read_iter,
|
||||
.write_iter = v9fs_mmap_file_write_iter,
|
||||
.open = v9fs_file_open,
|
||||
|
|
|
@ -23,11 +23,9 @@
|
|||
|
||||
const struct file_operations adfs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.fsync = generic_file_fsync,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.splice_read = generic_file_splice_read,
|
||||
};
|
||||
|
|
|
@ -969,9 +969,7 @@ int affs_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync)
|
|||
}
|
||||
const struct file_operations affs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.open = affs_file_open,
|
||||
|
|
|
@ -31,8 +31,6 @@ const struct file_operations afs_file_operations = {
|
|||
.open = afs_open,
|
||||
.release = afs_release,
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = afs_file_write,
|
||||
.mmap = generic_file_readonly_mmap,
|
||||
|
|
|
@ -23,9 +23,7 @@
|
|||
|
||||
const struct file_operations bfs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.splice_read = generic_file_splice_read,
|
||||
|
|
|
@ -1659,8 +1659,6 @@ const struct file_operations def_blk_fops = {
|
|||
.open = blkdev_open,
|
||||
.release = blkdev_close,
|
||||
.llseek = block_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = blkdev_read_iter,
|
||||
.write_iter = blkdev_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
|
|
|
@ -2806,8 +2806,6 @@ static loff_t btrfs_file_llseek(struct file *file, loff_t offset, int whence)
|
|||
|
||||
const struct file_operations btrfs_file_operations = {
|
||||
.llseek = btrfs_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.splice_read = generic_file_splice_read,
|
||||
.write_iter = btrfs_file_write_iter,
|
||||
|
|
|
@ -1331,8 +1331,6 @@ const struct file_operations ceph_file_fops = {
|
|||
.open = ceph_open,
|
||||
.release = ceph_release,
|
||||
.llseek = ceph_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = ceph_read_iter,
|
||||
.write_iter = ceph_write_iter,
|
||||
.mmap = ceph_mmap,
|
||||
|
|
|
@ -906,8 +906,6 @@ const struct inode_operations cifs_symlink_inode_ops = {
|
|||
};
|
||||
|
||||
const struct file_operations cifs_file_ops = {
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cifs_loose_read_iter,
|
||||
.write_iter = cifs_file_write_iter,
|
||||
.open = cifs_open,
|
||||
|
@ -926,8 +924,6 @@ const struct file_operations cifs_file_ops = {
|
|||
};
|
||||
|
||||
const struct file_operations cifs_file_strict_ops = {
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cifs_strict_readv,
|
||||
.write_iter = cifs_strict_writev,
|
||||
.open = cifs_open,
|
||||
|
@ -947,8 +943,6 @@ const struct file_operations cifs_file_strict_ops = {
|
|||
|
||||
const struct file_operations cifs_file_direct_ops = {
|
||||
/* BB reevaluate whether they can be done with directio, no cache */
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cifs_user_readv,
|
||||
.write_iter = cifs_user_writev,
|
||||
.open = cifs_open,
|
||||
|
@ -967,8 +961,6 @@ const struct file_operations cifs_file_direct_ops = {
|
|||
};
|
||||
|
||||
const struct file_operations cifs_file_nobrl_ops = {
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cifs_loose_read_iter,
|
||||
.write_iter = cifs_file_write_iter,
|
||||
.open = cifs_open,
|
||||
|
@ -986,8 +978,6 @@ const struct file_operations cifs_file_nobrl_ops = {
|
|||
};
|
||||
|
||||
const struct file_operations cifs_file_strict_nobrl_ops = {
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cifs_strict_readv,
|
||||
.write_iter = cifs_strict_writev,
|
||||
.open = cifs_open,
|
||||
|
@ -1006,8 +996,6 @@ const struct file_operations cifs_file_strict_nobrl_ops = {
|
|||
|
||||
const struct file_operations cifs_file_direct_nobrl_ops = {
|
||||
/* BB reevaluate whether they can be done with directio, no cache */
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cifs_user_readv,
|
||||
.write_iter = cifs_user_writev,
|
||||
.open = cifs_open,
|
||||
|
|
|
@ -219,8 +219,6 @@ int coda_fsync(struct file *coda_file, loff_t start, loff_t end, int datasync)
|
|||
|
||||
const struct file_operations coda_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = coda_file_read_iter,
|
||||
.write_iter = coda_file_write_iter,
|
||||
.mmap = coda_file_mmap,
|
||||
|
|
|
@ -358,9 +358,7 @@ const struct file_operations ecryptfs_dir_fops = {
|
|||
|
||||
const struct file_operations ecryptfs_main_fops = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = ecryptfs_read_update_atime,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.iterate = ecryptfs_readdir,
|
||||
.unlocked_ioctl = ecryptfs_unlocked_ioctl,
|
||||
|
|
|
@ -67,8 +67,6 @@ static int exofs_flush(struct file *file, fl_owner_t id)
|
|||
|
||||
const struct file_operations exofs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
|
|
|
@ -92,8 +92,6 @@ int ext2_fsync(struct file *file, loff_t start, loff_t end, int datasync)
|
|||
*/
|
||||
const struct file_operations ext2_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.unlocked_ioctl = ext2_ioctl,
|
||||
|
@ -111,8 +109,6 @@ const struct file_operations ext2_file_operations = {
|
|||
#ifdef CONFIG_FS_DAX
|
||||
const struct file_operations ext2_dax_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.unlocked_ioctl = ext2_ioctl,
|
||||
|
|
|
@ -50,8 +50,6 @@ static int ext3_release_file (struct inode * inode, struct file * filp)
|
|||
|
||||
const struct file_operations ext3_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.unlocked_ioctl = ext3_ioctl,
|
||||
|
|
|
@ -607,8 +607,6 @@ loff_t ext4_llseek(struct file *file, loff_t offset, int whence)
|
|||
|
||||
const struct file_operations ext4_file_operations = {
|
||||
.llseek = ext4_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = ext4_file_write_iter,
|
||||
.unlocked_ioctl = ext4_ioctl,
|
||||
|
@ -627,8 +625,6 @@ const struct file_operations ext4_file_operations = {
|
|||
#ifdef CONFIG_FS_DAX
|
||||
const struct file_operations ext4_dax_file_operations = {
|
||||
.llseek = ext4_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = ext4_file_write_iter,
|
||||
.unlocked_ioctl = ext4_ioctl,
|
||||
|
|
|
@ -1104,8 +1104,6 @@ long f2fs_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
|
||||
const struct file_operations f2fs_file_operations = {
|
||||
.llseek = f2fs_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.open = generic_file_open,
|
||||
|
|
|
@ -170,8 +170,6 @@ int fat_file_fsync(struct file *filp, loff_t start, loff_t end, int datasync)
|
|||
|
||||
const struct file_operations fat_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
|
|
|
@ -177,8 +177,6 @@ static long cuse_file_compat_ioctl(struct file *file, unsigned int cmd,
|
|||
|
||||
static const struct file_operations cuse_frontend_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = cuse_read_iter,
|
||||
.write_iter = cuse_write_iter,
|
||||
.open = cuse_open,
|
||||
|
|
|
@ -2953,9 +2953,7 @@ static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
|
|||
|
||||
static const struct file_operations fuse_file_operations = {
|
||||
.llseek = fuse_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = fuse_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = fuse_file_write_iter,
|
||||
.mmap = fuse_file_mmap,
|
||||
.open = fuse_open,
|
||||
|
@ -2973,9 +2971,7 @@ static const struct file_operations fuse_file_operations = {
|
|||
|
||||
static const struct file_operations fuse_direct_io_file_operations = {
|
||||
.llseek = fuse_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = fuse_direct_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = fuse_direct_write_iter,
|
||||
.mmap = fuse_direct_mmap,
|
||||
.open = fuse_open,
|
||||
|
|
|
@ -1064,9 +1064,7 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl)
|
|||
|
||||
const struct file_operations gfs2_file_fops = {
|
||||
.llseek = gfs2_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = gfs2_file_write_iter,
|
||||
.unlocked_ioctl = gfs2_ioctl,
|
||||
.mmap = gfs2_mmap,
|
||||
|
@ -1096,9 +1094,7 @@ const struct file_operations gfs2_dir_fops = {
|
|||
|
||||
const struct file_operations gfs2_file_fops_nolock = {
|
||||
.llseek = gfs2_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = gfs2_file_write_iter,
|
||||
.unlocked_ioctl = gfs2_ioctl,
|
||||
.mmap = gfs2_mmap,
|
||||
|
|
|
@ -674,9 +674,7 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end,
|
|||
|
||||
static const struct file_operations hfs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.splice_read = generic_file_splice_read,
|
||||
|
|
|
@ -341,9 +341,7 @@ static const struct inode_operations hfsplus_file_inode_operations = {
|
|||
|
||||
static const struct file_operations hfsplus_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.splice_read = generic_file_splice_read,
|
||||
|
|
|
@ -378,11 +378,9 @@ static int hostfs_fsync(struct file *file, loff_t start, loff_t end,
|
|||
|
||||
static const struct file_operations hostfs_file_fops = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.splice_read = generic_file_splice_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.write = new_sync_write,
|
||||
.mmap = generic_file_mmap,
|
||||
.open = hostfs_file_open,
|
||||
.release = hostfs_file_release,
|
||||
|
|
|
@ -197,9 +197,7 @@ const struct address_space_operations hpfs_aops = {
|
|||
const struct file_operations hpfs_file_ops =
|
||||
{
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.release = hpfs_file_release,
|
||||
|
|
|
@ -696,7 +696,6 @@ static void init_once(void *foo)
|
|||
}
|
||||
|
||||
const struct file_operations hugetlbfs_file_operations = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = hugetlbfs_read_iter,
|
||||
.mmap = hugetlbfs_file_mmap,
|
||||
.fsync = noop_fsync,
|
||||
|
|
|
@ -51,9 +51,7 @@ const struct file_operations jffs2_file_operations =
|
|||
{
|
||||
.llseek = generic_file_llseek,
|
||||
.open = generic_file_open,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.unlocked_ioctl=jffs2_ioctl,
|
||||
.mmap = generic_file_readonly_mmap,
|
||||
|
|
|
@ -151,8 +151,6 @@ const struct inode_operations jfs_file_inode_operations = {
|
|||
const struct file_operations jfs_file_operations = {
|
||||
.open = jfs_open,
|
||||
.llseek = generic_file_llseek,
|
||||
.write = new_sync_write,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
|
|
|
@ -271,8 +271,6 @@ const struct file_operations logfs_reg_fops = {
|
|||
.llseek = generic_file_llseek,
|
||||
.mmap = generic_file_readonly_mmap,
|
||||
.open = generic_file_open,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
};
|
||||
|
||||
const struct address_space_operations logfs_reg_aops = {
|
||||
|
|
|
@ -14,9 +14,7 @@
|
|||
*/
|
||||
const struct file_operations minix_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.fsync = generic_file_fsync,
|
||||
|
|
|
@ -249,8 +249,6 @@ static int ncp_release(struct inode *inode, struct file *file) {
|
|||
const struct file_operations ncp_file_operations =
|
||||
{
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = ncp_file_read_iter,
|
||||
.write_iter = ncp_file_write_iter,
|
||||
.unlocked_ioctl = ncp_ioctl,
|
||||
|
|
|
@ -926,8 +926,6 @@ EXPORT_SYMBOL_GPL(nfs_flock);
|
|||
|
||||
const struct file_operations nfs_file_operations = {
|
||||
.llseek = nfs_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = nfs_file_read,
|
||||
.write_iter = nfs_file_write,
|
||||
.mmap = nfs_file_mmap,
|
||||
|
|
|
@ -170,8 +170,6 @@ const struct file_operations nfs4_file_operations = {
|
|||
#else
|
||||
.llseek = nfs_file_llseek,
|
||||
#endif
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = nfs_file_read,
|
||||
.write_iter = nfs_file_write,
|
||||
.mmap = nfs_file_mmap,
|
||||
|
|
|
@ -143,8 +143,6 @@ static int nilfs_file_mmap(struct file *file, struct vm_area_struct *vma)
|
|||
*/
|
||||
const struct file_operations nilfs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.unlocked_ioctl = nilfs_ioctl,
|
||||
|
|
|
@ -2048,10 +2048,8 @@ static int ntfs_file_fsync(struct file *filp, loff_t start, loff_t end,
|
|||
|
||||
const struct file_operations ntfs_file_ops = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
#ifdef NTFS_RW
|
||||
.write = new_sync_write,
|
||||
.write_iter = ntfs_file_write_iter,
|
||||
.fsync = ntfs_file_fsync,
|
||||
#endif /* NTFS_RW */
|
||||
|
|
|
@ -2676,8 +2676,6 @@ const struct inode_operations ocfs2_special_file_iops = {
|
|||
*/
|
||||
const struct file_operations ocfs2_fops = {
|
||||
.llseek = ocfs2_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.mmap = ocfs2_mmap,
|
||||
.fsync = ocfs2_sync_file,
|
||||
.release = ocfs2_file_release,
|
||||
|
@ -2724,8 +2722,6 @@ const struct file_operations ocfs2_dops = {
|
|||
*/
|
||||
const struct file_operations ocfs2_fops_no_plocks = {
|
||||
.llseek = ocfs2_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.mmap = ocfs2_mmap,
|
||||
.fsync = ocfs2_sync_file,
|
||||
.release = ocfs2_file_release,
|
||||
|
|
|
@ -337,8 +337,6 @@ static sector_t omfs_bmap(struct address_space *mapping, sector_t block)
|
|||
|
||||
const struct file_operations omfs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
|
|
|
@ -946,9 +946,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
|
|||
const struct file_operations pipefifo_fops = {
|
||||
.open = fifo_open,
|
||||
.llseek = no_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = pipe_read,
|
||||
.write = new_sync_write,
|
||||
.write_iter = pipe_write,
|
||||
.poll = pipe_poll,
|
||||
.unlocked_ioctl = pipe_ioctl,
|
||||
|
|
|
@ -31,9 +31,7 @@
|
|||
#include "internal.h"
|
||||
|
||||
const struct file_operations ramfs_file_operations = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.fsync = noop_fsync,
|
||||
|
|
|
@ -44,9 +44,7 @@ const struct file_operations ramfs_file_operations = {
|
|||
.mmap_capabilities = ramfs_mmap_capabilities,
|
||||
.mmap = ramfs_nommu_mmap,
|
||||
.get_unmapped_area = ramfs_nommu_get_unmapped_area,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.fsync = noop_fsync,
|
||||
.splice_read = generic_file_splice_read,
|
||||
|
|
|
@ -28,7 +28,6 @@ typedef ssize_t (*iter_fn_t)(struct kiocb *, struct iov_iter *);
|
|||
|
||||
const struct file_operations generic_ro_fops = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.mmap = generic_file_readonly_mmap,
|
||||
.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
|
|||
|
||||
EXPORT_SYMBOL(do_sync_read);
|
||||
|
||||
ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
|
||||
static ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos)
|
||||
{
|
||||
struct iovec iov = { .iov_base = buf, .iov_len = len };
|
||||
struct kiocb kiocb;
|
||||
|
@ -445,8 +444,6 @@ ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *p
|
|||
return ret;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(new_sync_read);
|
||||
|
||||
ssize_t __vfs_read(struct file *file, char __user *buf, size_t count,
|
||||
loff_t *pos)
|
||||
{
|
||||
|
@ -505,7 +502,7 @@ ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, lof
|
|||
|
||||
EXPORT_SYMBOL(do_sync_write);
|
||||
|
||||
ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
|
||||
static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
|
||||
{
|
||||
struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
|
||||
struct kiocb kiocb;
|
||||
|
@ -522,8 +519,6 @@ ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, lo
|
|||
return ret;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(new_sync_write);
|
||||
|
||||
ssize_t __vfs_write(struct file *file, const char __user *p, size_t count,
|
||||
loff_t *pos)
|
||||
{
|
||||
|
|
|
@ -243,8 +243,6 @@ int reiserfs_commit_page(struct inode *inode, struct page *page,
|
|||
}
|
||||
|
||||
const struct file_operations reiserfs_file_operations = {
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.unlocked_ioctl = reiserfs_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_ioctl = reiserfs_compat_ioctl,
|
||||
|
|
|
@ -81,7 +81,6 @@ static unsigned romfs_mmap_capabilities(struct file *file)
|
|||
|
||||
const struct file_operations romfs_ro_fops = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.splice_read = generic_file_splice_read,
|
||||
.mmap = romfs_mmap,
|
||||
|
|
|
@ -21,9 +21,7 @@
|
|||
*/
|
||||
const struct file_operations sysv_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.fsync = generic_file_fsync,
|
||||
|
|
|
@ -1580,8 +1580,6 @@ const struct inode_operations ubifs_symlink_inode_operations = {
|
|||
|
||||
const struct file_operations ubifs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = ubifs_write_iter,
|
||||
.mmap = ubifs_file_mmap,
|
||||
|
|
|
@ -240,12 +240,10 @@ static int udf_release_file(struct inode *inode, struct file *filp)
|
|||
}
|
||||
|
||||
const struct file_operations udf_file_operations = {
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.unlocked_ioctl = udf_ioctl,
|
||||
.open = generic_file_open,
|
||||
.mmap = generic_file_mmap,
|
||||
.write = new_sync_write,
|
||||
.write_iter = udf_file_write_iter,
|
||||
.release = udf_release_file,
|
||||
.fsync = generic_file_fsync,
|
||||
|
|
|
@ -35,9 +35,7 @@
|
|||
|
||||
const struct file_operations ufs_file_operations = {
|
||||
.llseek = generic_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write = new_sync_write,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.mmap = generic_file_mmap,
|
||||
.open = generic_file_open,
|
||||
|
|
|
@ -1386,8 +1386,6 @@ xfs_file_llseek(
|
|||
|
||||
const struct file_operations xfs_file_operations = {
|
||||
.llseek = xfs_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = xfs_file_read_iter,
|
||||
.write_iter = xfs_file_write_iter,
|
||||
.splice_read = xfs_file_splice_read,
|
||||
|
|
|
@ -2576,8 +2576,6 @@ extern ssize_t generic_file_direct_write(struct kiocb *, struct iov_iter *, loff
|
|||
extern ssize_t generic_perform_write(struct file *, struct iov_iter *, loff_t);
|
||||
extern ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos);
|
||||
extern ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos);
|
||||
extern ssize_t new_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos);
|
||||
extern ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos);
|
||||
|
||||
ssize_t vfs_iter_read(struct file *file, struct iov_iter *iter, loff_t *ppos);
|
||||
ssize_t vfs_iter_write(struct file *file, struct iov_iter *iter, loff_t *ppos);
|
||||
|
|
|
@ -3118,8 +3118,6 @@ static const struct file_operations shmem_file_operations = {
|
|||
.mmap = shmem_mmap,
|
||||
#ifdef CONFIG_TMPFS
|
||||
.llseek = shmem_file_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = shmem_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
.fsync = noop_fsync,
|
||||
|
|
|
@ -140,8 +140,6 @@ static ssize_t sock_splice_read(struct file *file, loff_t *ppos,
|
|||
static const struct file_operations socket_file_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
.read = new_sync_read,
|
||||
.write = new_sync_write,
|
||||
.read_iter = sock_read_iter,
|
||||
.write_iter = sock_write_iter,
|
||||
.poll = sock_poll,
|
||||
|
|
Loading…
Reference in New Issue