[PATCH] sanitize proc_sysctl
Al Viro authored

* keep references to ctl_table_head and ctl_table in /proc/sys inodes
* grab the former during operations, use the latter for access to
  entry if that succeeds
* have ->d_compare() check if table should be seen for one who does lookup;
  that allows us to avoid flipping inodes - if we have the same name resolve
  to different things, we'll just keep several dentries and ->d_compare()
  will reject the wrong ones.
* have ->lookup() and ->readdir() scan the table of our inode first, then
  walk all ctl_table_header and scan ->attached_by for those that are
  attached to our directory.
* implement ->getattr().
* get rid of insane amounts of tree-walking
* get rid of the need to know dentry in ->permission() and of the contortions
  induced by that.
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
9043476f
Name Last commit Last update
..
9p 9p: fix O_APPEND in legacy mode
adfs SL*B: drop kmem cache argument from constructor
affs SL*B: drop kmem cache argument from constructor
afs SL*B: drop kmem cache argument from constructor
autofs mount options: fix autofs
autofs4 autofs4: remove unused ioctls
befs SL*B: drop kmem cache argument from constructor
bfs SL*B: drop kmem cache argument from constructor
cifs Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
coda SL*B: drop kmem cache argument from constructor
configfs configfs: Allow ->make_item() and ->make_group() to return detailed errors.
cramfs fs: Remove unnecessary inclusions of asm/semaphore.h
debugfs debugfs: Implement debugfs_remove_recursive()
devpts devpts: factor out PTY index allocation
dlm locks: add special return value for asynchronous locks
ecryptfs SL*B: drop kmem cache argument from constructor
efs SL*B: drop kmem cache argument from constructor
exportfs fs: replace remaining __FUNCTION__ occurrences
ext2 SL*B: drop kmem cache argument from constructor
ext3 SL*B: drop kmem cache argument from constructor
ext4 SL*B: drop kmem cache argument from constructor
fat SL*B: drop kmem cache argument from constructor
freevxfs fs/freevxfs/: proper externs
fuse SL*B: drop kmem cache argument from constructor
gfs2 SL*B: drop kmem cache argument from constructor
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd
jbd2
jffs2
jfs
lockd
minix
msdos
ncpfs
nfs
nfs_common
nfsd
nls
ntfs
ocfs2
omfs
openpromfs
partitions
proc
qnx4
ramfs
reiserfs
romfs
smbfs
sysfs
sysv
ubifs
udf
ufs
vfat
xfs
Kconfig
Kconfig.binfmt
Makefile
aio.c
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
dcache.c
dcookies.c
direct-io.c
dnotify.c
dquot.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c
generic_acl.c
inode.c
inotify.c
inotify_user.c
internal.h
ioctl.c
ioprio.c
libfs.c
locks.c
mbcache.c
mpage.c
namei.c
namespace.c
nfsctl.c
no-block.c
open.c
pipe.c
pnode.c
pnode.h
posix_acl.c
quota.c
quota_v1.c
quota_v2.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
super.c
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c