linux/fs
Ian Kent a45440f05e autofs4 - fix get_next_positive_subdir()
Following a report of a crash during an automount expire I found that
the locking in fs/autofs4/expire.c:get_next_positive_subdir() was wrong.
Not only is the locking wrong but the function is more complex than it
needs to be.

The function is meant to calculate (and dget) the next entry in the list
of directories contained in the root of an autofs mount point (an autofs
indirect mount to be precise). The main problem was that the d_lock of
the owner of the list was not being taken when walking the list, which
lead to list corruption under load. The only other lock that needs to
be taken is against the next dentry candidate so it can be checked for
usability.

Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-08-16 11:58:28 -07:00
..
9p
adfs
affs
afs
autofs4 autofs4 - fix get_next_positive_subdir() 2012-08-16 11:58:28 -07:00
befs
bfs
btrfs Merge branch 'for-linus-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2012-08-12 21:28:41 +03:00
cachefiles
ceph
cifs
coda
configfs
cramfs
debugfs
devpts
dlm
ecryptfs
efs
exofs Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2012-08-03 13:24:07 -07:00
exportfs
ext2
ext3 ext3: nuke write_super from comments 2012-08-04 12:15:32 +04:00
ext4 ext4: nuke pdflush from comments 2012-08-04 12:15:34 +04:00
fat
freevxfs
fscache
fuse Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse 2012-08-16 11:46:31 -07:00
gfs2 gfs2: nuke pdflush from comments 2012-08-04 12:15:40 +04:00
hfs hfs: nuke write_super from comments 2012-08-04 12:15:38 +04:00
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd jbd/jbd2: nuke write_super from comments 2012-08-04 12:15:36 +04:00
jbd2 jbd/jbd2: nuke write_super from comments 2012-08-04 12:15:36 +04:00
jffs2
jfs
lockd
logfs
minix
ncpfs
nfs
nfs_common
nfsd
nilfs2 nilfs2: nuke write_super from comments 2012-08-04 12:15:38 +04:00
nls
notify
ntfs
ocfs2
omfs
openpromfs
proc
pstore
qnx4
qnx6
quota
ramfs
reiserfs
romfs
squashfs
sysfs
sysv
ubifs UBIFS: nuke pdflush from comments 2012-08-04 12:15:41 +04:00
udf
ufs
xfs
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 vfs: nuke pdflush from comments 2012-08-04 12:15:37 +04:00
block_dev.c
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
dcache.c
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fhandle.c
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c
fs_struct.c
generic_acl.c
inode.c
internal.h
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c
locks.c
Makefile
mbcache.c
mount.h
mpage.c
namei.c
namespace.c
no-block.c
open.c missed mnt_drop_write() in do_dentry_open() 2012-08-04 12:15:41 +04:00
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
statfs.c
super.c vfs: kill write_super and sync_supers 2012-08-04 01:24:44 +04:00
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c