linux/fs
Al Viro dabe0dc194 vfs: fix the rest of sget() races
unfortunately, just checking MS_BORN after having grabbed ->s_umount in
sget() is not enough; places that pick superblock from a list and
grab s_umount shared need the same check in addition to checking for
->s_root; otherwise three-way race between failing mount, sget() and
such list-walker can leave us with list-walker coming *second*, when
temporary active ref grabbed by sget() (to be dropped when sget()
notices that original mount has failed by checking MS_BORN) has
lead to deactivate_locked_super() from failing ->mount() *not* doing
->kill_sb() and just releasing ->s_umount.  Once sget() gets through
and notices that MS_BORN had never been set it will drop the active
ref and fs will be shut down and kicked out of all lists, but it's
too late for something like sync_supers().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-01-03 22:53:10 -05:00
..
9p vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
adfs filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
affs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
afs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
autofs4 filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
befs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
bfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
btrfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
cachefiles
ceph vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
cifs cifs: check for NULL last_entry before calling cifs_save_resume_key 2011-12-08 22:04:47 -06:00
coda vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
configfs vfs: live vfsmounts never have NULL ->mnt_sb 2012-01-03 22:52:42 -05:00
cramfs
debugfs vfs: for usbfs, etc. internal vfsmounts ->mnt_sb->s_root == ->mnt_root 2012-01-03 22:52:41 -05:00
devpts filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
dlm
ecryptfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
efs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
exofs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
exportfs
ext2 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
ext3 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
ext4 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
fat vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
freevxfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
fscache
fuse vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
gfs2 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
hfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
hfsplus vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
hostfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
hpfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
hppfs vfs: for usbfs, etc. internal vfsmounts ->mnt_sb->s_root == ->mnt_root 2012-01-03 22:52:41 -05:00
hugetlbfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
isofs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
jbd jbd/jbd2: validate sb->s_first in journal_get_superblock() 2011-11-01 19:04:59 -04:00
jbd2 jbd2: Unify log messages in jbd2 code 2011-11-01 19:09:18 -04:00
jffs2 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
jfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
lockd
logfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
minix vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
ncpfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
nfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
nfs_common
nfsd vfs: mnt_drop_write_file() 2012-01-03 22:52:40 -05:00
nilfs2 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
nls
notify
ntfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
ocfs2 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
omfs
openpromfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
partitions treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
proc vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
pstore pstore: pass allocated memory region back to caller 2011-11-17 12:58:07 -08:00
qnx4 vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
quota Merge branch 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux 2011-11-06 19:02:23 -08:00
ramfs ramfs: remove module leftovers 2011-11-02 16:06:58 -07:00
reiserfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
romfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
squashfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
sysfs filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
sysv vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
ubifs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
udf vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
ufs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
xfs vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
Kconfig tmpfs: add "tmpfs" to the Kconfig prompt to make it obvious. 2011-10-31 17:30:45 -07:00
Kconfig.binfmt
Makefile fs/Makefile: Stupid typo breakage of exofs inclusion 2011-10-27 08:36:51 +02:00
aio.c aio: allocate kiocbs in batches 2011-11-02 16:07:03 -07:00
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c binfmt_elf: fix PIE execution with randomization disabled 2011-11-02 16:06:58 -07:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c filesystems: add missing nlink wrappers 2011-11-02 12:53:43 +01:00
binfmt_script.c
binfmt_som.c
bio-integrity.c fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros 2011-10-31 19:30:31 -04:00
bio.c bio: change some signed vars to unsigned 2011-11-16 09:21:50 +01:00
block_dev.c vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
buffer.c Merge branch 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux 2011-11-06 19:02:23 -08:00
char_dev.c
compat.c vfs: new helper - vfs_ustat() 2012-01-03 22:53:07 -05:00
compat_binfmt_elf.c
compat_ioctl.c
dcache.c vfs: more mnt_parent cleanups 2012-01-03 22:52:36 -05:00
dcookies.c
direct-io.c direct-io: merge direct_io_walker into __blockdev_direct_IO 2011-10-28 14:58:58 +02:00
drop_caches.c
eventfd.c
eventpoll.c epoll: fix spurious lockdep warnings 2011-10-31 17:30:57 -07:00
exec.c trim fs/internal.h 2012-01-03 22:52:35 -05:00
fcntl.c
fhandle.c
fifo.c
file.c
file_table.c
filesystems.c vfs: convert fs_supers to hlist 2012-01-03 22:52:39 -05:00
fs-writeback.c writeback: show writeback reason with __print_symbolic 2011-12-18 14:20:17 +08:00
fs_struct.c
generic_acl.c
inode.c vfs: fix the stupidity with i_dentry in inode destructors 2012-01-03 22:52:40 -05:00
internal.h vfs: new helper - vfs_ustat() 2012-01-03 22:53:07 -05:00
ioctl.c
ioprio.c fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros 2011-10-31 19:30:31 -04:00
libfs.c filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
locks.c vfs: fix handling of lock allocation failure in lease-break case 2011-12-26 10:25:26 -08:00
mbcache.c
mount.h vfs: new internal helper: mnt_has_parent(mnt) 2012-01-03 22:52:36 -05:00
mpage.c
namei.c VFS: we need to set LOOKUP_JUMPED on mountpoint crossing 2011-11-07 14:58:06 -08:00
namespace.c vfs: mnt_drop_write_file() 2012-01-03 22:52:40 -05:00
no-block.c
open.c vfs: mnt_drop_write_file() 2012-01-03 22:52:40 -05:00
pipe.c vfs: pipe.c is really non-modular 2012-01-03 22:52:41 -05:00
pnode.c vfs: more mnt_parent cleanups 2012-01-03 22:52:36 -05:00
pnode.h vfs: add missing parens in pnode.h macros 2012-01-03 22:52:37 -05:00
posix_acl.c vfs: pass all mask flags check_acl and posix_acl_permission 2011-10-28 14:58:54 +02:00
read_write.c Cross Memory Attach 2011-10-31 17:30:44 -07:00
read_write.h
readdir.c
select.c
seq_file.c constify seq_file stuff 2012-01-03 22:52:40 -05:00
signalfd.c
splice.c
stack.c filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
stat.c readlinkat: ensure we return ENOENT for the empty pathname for normal lookups 2011-11-02 12:53:42 +01:00
statfs.c vfs: new helper - vfs_ustat() 2012-01-03 22:53:07 -05:00
super.c vfs: fix the rest of sget() races 2012-01-03 22:53:10 -05:00
sync.c writeback: Add a 'reason' to wb_writeback_work 2011-10-31 00:33:36 +08:00
timerfd.c
utimes.c
xattr.c vfs: mnt_drop_write_file() 2012-01-03 22:52:40 -05:00
xattr_acl.c