linux/fs/ocfs2
Al Viro 9e1f1de02c more conservative S_NOSEC handling
Caching "we have already removed suid/caps" was overenthusiastic as merged.
On network filesystems we might have had suid/caps set on another client,
silently picked by this client on revalidate, all of that *without* clearing
the S_NOSEC flag.

AFAICS, the only reasonably sane way to deal with that is
	* new superblock flag; unless set, S_NOSEC is not going to be set.
	* local block filesystems set it in their ->mount() (more accurately,
mount_bdev() does, so does btrfs ->mount(), users of mount_bdev() other than
local block ones clear it)
	* if any network filesystem (or a cluster one) wants to use S_NOSEC,
it'll need to set MS_NOSEC in sb->s_flags *AND* take care to clear S_NOSEC when
inode attribute changes are picked from other clients.

It's not an earth-shattering hole (anybody that can set suid on another client
will almost certainly be able to write to the file before doing that anyway),
but it's a bug that needs fixing.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2011-06-03 18:24:58 -04:00
..
cluster ocfs2: remove the /sys/o2cb symlink 2011-05-23 23:37:14 -07:00
dlm ocfs2/dlm: Do not migrate resource to a node that is leaving the domain 2011-05-25 21:05:22 -07:00
dlmfs ocfs2: change incorrect 'extern' keyword to 'static' in dlmfs 2011-05-23 23:59:40 -07:00
acl.c Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 2011-03-28 13:03:31 -07:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
alloc.c ocfs2: Add trace event for trim. 2011-05-23 23:37:20 -07:00
alloc.h ocfs2: Add ocfs2_trim_fs for SSD trim support. 2011-05-23 23:37:18 -07:00
aops.c Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 2011-03-28 13:03:31 -07:00
aops.h Fix common misspellings 2011-03-31 11:26:23 -03:00
blockcheck.c
blockcheck.h
buffer_head_io.c ocfs2: Remove masklog ML_UPTODATE. 2011-02-24 16:22:20 +08:00
buffer_head_io.h
dcache.c ocfs2: fix d_revalidate oopsen on NFS exports 2011-03-10 03:45:07 -05:00
dcache.h
dir.c ocfs2: Initialize data_ac (might be used uninitialized) 2011-05-13 11:26:15 -07:00
dir.h
dlmglue.c Merge branch 'mlog_replace_for_39' of git://repo.or.cz/taoma-kernel into ocfs2-merge-window-fix 2011-03-28 09:44:26 -07:00
dlmglue.h
export.c exportfs: Return the minimum required handle size 2011-03-14 09:15:28 -04:00
export.h
extent_map.c ocfs2: Remove masklog ML_EXTENT_MAP. 2011-02-22 22:27:33 +08:00
extent_map.h
file.c Ocfs2: Teach local-mounted ocfs2 to handle unwritten_extents correctly. 2011-05-25 21:06:28 -07:00
file.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
heartbeat.c ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.c 2011-02-23 21:17:39 +08:00
heartbeat.h
inode.c Fix common misspellings 2011-03-31 11:26:23 -03:00
inode.h
ioctl.c Merge branch 'move_extents' of git://oss.oracle.com/git/tye/linux-2.6 into ocfs2-merge-window 2011-05-25 21:51:55 -07:00
ioctl.h
journal.c ocfs2: Skip mount recovery for hard-ro mounts 2011-05-13 11:27:14 -07:00
journal.h Fix common misspellings 2011-03-31 11:26:23 -03:00
Kconfig ocfs2: Make OCFS2_FS depend on CONFIGFS_FS 2011-01-16 21:22:40 +00:00
localalloc.c ocfs2: Remove EXIT from masklog. 2011-03-07 16:43:21 +08:00
localalloc.h
locks.c ocfs2: remove INODE from unused files. 2011-02-21 11:18:23 +08:00
locks.h
Makefile Ocfs2/move_extents: Add basic framework and source files for extent moving. 2011-05-25 15:17:08 +08:00
mmap.c ocfs2: Remove FILE_IO from masklog. 2011-02-22 21:59:46 +08:00
mmap.h
move_extents.c Ocfs2/move_extents: Validate moving goal after the adjustment. 2011-05-27 14:52:57 +08:00
move_extents.h Ocfs2/move_extents: move/defrag extents within a certain range. 2011-05-25 15:17:12 +08:00
namei.c Fix common misspellings 2011-03-31 11:26:23 -03:00
namei.h
ocfs1_fs_compat.h
ocfs2.h Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 2011-03-28 13:03:31 -07:00
ocfs2_fs.h Revert wrong fixes for common misspellings 2011-04-26 23:31:11 -07:00
ocfs2_ioctl.h Ocfs2/move_extents: Adding new ioctl code 'OCFS2_IOC_MOVE_EXT' to ocfs2. 2011-05-25 15:17:08 +08:00
ocfs2_lockid.h
ocfs2_lockingver.h
ocfs2_trace.h ocfs2: Add trace event for trim. 2011-05-23 23:37:20 -07:00
quota.h ocfs2: use system_wq instead of ocfs2_quota_wq 2011-02-01 11:42:42 +01:00
quota_global.c Fix common misspellings 2011-03-31 11:26:23 -03:00
quota_local.c ocfs2: Remove mlog(0) from quota_local.c. 2011-02-23 22:12:48 +08:00
refcounttree.c Ocfs2/refcounttree: Publicize couple of funcs from refcounttree.c 2011-05-25 15:17:08 +08:00
refcounttree.h Ocfs2/refcounttree: Publicize couple of funcs from refcounttree.c 2011-05-25 15:17:08 +08:00
reservations.c ocfs2: Remove masklog ML_RESERVATIONS. 2011-02-23 22:10:56 +08:00
reservations.h Fix common misspellings 2011-03-31 11:26:23 -03:00
resize.c ocfs2: Remove mlog(0) from fs/ocfs2/suballoc.c 2011-02-22 08:24:01 +08:00
resize.h
slot_map.c ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.c 2011-02-22 22:29:08 +08:00
slot_map.h
stack_o2cb.c
stack_user.c ocfs2_connection_find() returns pointer to bad structure 2010-11-18 15:41:41 -08:00
stackglue.c
stackglue.h Fix common misspellings 2011-03-31 11:26:23 -03:00
suballoc.c Fix common misspellings 2011-03-31 11:26:23 -03:00
suballoc.h
super.c more conservative S_NOSEC handling 2011-06-03 18:24:58 -04:00
super.h
symlink.c ocfs2: Remove EXIT from masklog. 2011-03-07 16:43:21 +08:00
symlink.h
sysfile.c ocfs2: Remove mlog(0) from fs/ocfs2/file.c 2011-02-22 22:14:41 +08:00
sysfile.h
uptodate.c ocfs2: Remove masklog ML_UPTODATE. 2011-02-24 16:22:20 +08:00
uptodate.h
ver.c
ver.h
xattr.c Fix common misspellings 2011-03-31 11:26:23 -03:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00