linux/fs/proc
Miklos Szeredi f696a3659f [PATCH] move executable checking into ->permission()
For execute permission on a regular files we need to check if file has
any execute bits at all, regardless of capabilites.

This check is normally performed by generic_permission() but was also
added to the case when the filesystem defines its own ->permission()
method.  In the latter case the filesystem should be responsible for
performing this check.

Move the check from inode_permission() inside filesystems which are
not calling generic_permission().

Create a helper function execute_ok() that returns true if the inode
is a directory or if any execute bits are present in i_mode.

Also fix up the following code:

 - coda control file is never executable
 - sysctl files are never executable
 - hfs_permission seems broken on MAY_EXEC, remove
 - hfsplus_permission is eqivalent to generic_permission(), remove

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2008-10-23 05:13:25 -04:00
..
array.c Merge branches 'timers/clocksource', 'timers/hrtimers', 'timers/nohz', 'timers/ntp', 'timers/posixtimers' and 'timers/debug' into v28-timers-for-linus 2008-10-20 13:14:06 +02:00
base.c proc: remove kernel.maps_protect 2008-10-10 04:24:51 +04:00
generic.c proc: more debugging for "already registered" case 2008-09-13 14:41:50 -07:00
inode-alloc.txt
inode.c proc: fix return value of proc_reg_open() in "too late" case 2008-10-10 04:18:54 +04:00
internal.h proc: remove kernel.maps_protect 2008-10-10 04:24:51 +04:00
Kconfig proc: move PROC_PAGE_MONITOR to fs/proc/Kconfig 2008-10-10 04:18:57 +04:00
kcore.c elf: use ELF_CORE_EFLAGS for kcore ELF header flags 2008-07-25 10:53:42 -07:00
kmsg.c move proc_kmsg_operations to fs/proc/internal.h 2008-07-25 10:53:44 -07:00
Makefile [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
mmu.c fs/proc/mmu.c: headers butchery 2007-10-17 08:42:48 -07:00
nommu.c /proc/self/maps doesn't display the real file offset 2008-08-20 15:40:30 -07:00
proc_devtree.c [POWERPC] Make struct property's value a void * 2007-04-13 03:55:18 +10:00
proc_misc.c Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:23:01 -07:00
proc_net.c netns: make get_proc_net() static 2008-07-22 14:19:19 -07:00
proc_sysctl.c [PATCH] move executable checking into ->permission() 2008-10-23 05:13:25 -04:00
proc_tty.c tty: Ldisc revamp 2008-07-20 17:12:34 -07:00
root.c proc: introduce proc_create_data to setup de->data 2008-04-29 08:06:20 -07:00
task_mmu.c proc: remove kernel.maps_protect 2008-10-10 04:24:51 +04:00
task_nommu.c proc: remove kernel.maps_protect 2008-10-10 04:24:51 +04:00
vmcore.c kdump: add is_vmcore_usable() and vmcore_unusable() 2008-10-20 08:52:40 -07:00