Commit 906146f4 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Al Viro
Browse files

proc: cleanup the compat vs no compat file ops



Instead of providing a special no-compat version provide a special
compat version for operations with ->compat_ioctl.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent f6ef7b7b
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -572,9 +572,6 @@ static const struct file_operations proc_reg_file_ops = {
	.write		= proc_reg_write,
	.poll		= proc_reg_poll,
	.unlocked_ioctl	= proc_reg_unlocked_ioctl,
#ifdef CONFIG_COMPAT
	.compat_ioctl	= proc_reg_compat_ioctl,
#endif
	.mmap		= proc_reg_mmap,
	.get_unmapped_area = proc_reg_get_unmapped_area,
	.open		= proc_reg_open,
@@ -582,12 +579,13 @@ static const struct file_operations proc_reg_file_ops = {
};

#ifdef CONFIG_COMPAT
static const struct file_operations proc_reg_file_ops_no_compat = {
static const struct file_operations proc_reg_file_ops_compat = {
	.llseek		= proc_reg_llseek,
	.read		= proc_reg_read,
	.write		= proc_reg_write,
	.poll		= proc_reg_poll,
	.unlocked_ioctl	= proc_reg_unlocked_ioctl,
	.compat_ioctl	= proc_reg_compat_ioctl,
	.mmap		= proc_reg_mmap,
	.get_unmapped_area = proc_reg_get_unmapped_area,
	.open		= proc_reg_open,
@@ -646,8 +644,8 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
		inode->i_op = de->proc_iops;
		inode->i_fop = &proc_reg_file_ops;
#ifdef CONFIG_COMPAT
		if (!de->proc_ops->proc_compat_ioctl)
			inode->i_fop = &proc_reg_file_ops_no_compat;
		if (de->proc_ops->proc_compat_ioctl)
			inode->i_fop = &proc_reg_file_ops_compat;
#endif
	} else if (S_ISDIR(inode->i_mode)) {
		inode->i_op = de->proc_iops;