From: Eric W. Biederman The inode operations only exist to support the proc_permission function. Currently mem_read and mem_write have all the same permission checks as ptrace. The fs check makes no sense in this context, and we can trivially get around it by calling ptrace. So simply the code by killing the strange weird case. Signed-off-by: Eric W. Biederman Signed-off-by: Andrew Morton --- fs/proc/base.c | 5 ----- 1 file changed, 5 deletions(-) diff -puN fs/proc/base.c~proc-kill-proc_mem_inode_operations fs/proc/base.c --- a/fs/proc/base.c~proc-kill-proc_mem_inode_operations +++ a/fs/proc/base.c @@ -927,10 +927,6 @@ static struct file_operations proc_oom_a .write = oom_adjust_write, }; -static struct inode_operations proc_mem_inode_operations = { - .permission = proc_permission, -}; - #ifdef CONFIG_AUDITSYSCALL #define TMPBUFLEN 21 static ssize_t proc_loginuid_read(struct file * file, char __user * buf, @@ -1697,7 +1693,6 @@ static struct dentry *proc_pident_lookup #endif case PROC_TID_MEM: case PROC_TGID_MEM: - inode->i_op = &proc_mem_inode_operations; inode->i_fop = &proc_mem_operations; break; #ifdef CONFIG_SECCOMP _