Revision 6d09bb627d2470299dfb1af0e6d27fb4aece9196 authored by Trond Myklebust on 04 June 2006, 09:51:37 UTC, committed by Linus Torvalds on 05 June 2006, 19:29:16 UTC
From: Trond Myklebust <Trond.Myklebust@netapp.com>

We're presently running lock_kernel() under fs_lock via nfs's ->permission
handler.  That's a ranking bug and sometimes a sleep-in-spinlock bug.  This
problem was introduced in the openat() patchset.

We should not need to hold the current->fs->lock for a codepath that doesn't
use current->fs.

[vsu@altlinux.ru: fix error path]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent c7d2d28
History
File Mode Size
9p
adfs
affs
afs
autofs
autofs4
befs
bfs
cifs
coda
configfs
cramfs
debugfs
devfs
devpts
efs
exportfs
ext2
ext3
fat
freevxfs
fuse
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd
jffs
jffs2
jfs
lockd
minix
msdos
ncpfs
nfs
nfs_common
nfsd
nls
ntfs
ocfs2
openpromfs
partitions
proc
qnx4
ramfs
reiserfs
romfs
smbfs
sysfs
sysv
udf
ufs
vfat
xfs
Kconfig -rw-r--r-- 66.0 KB
Kconfig.binfmt -rw-r--r-- 5.3 KB
Makefile -rw-r--r-- 3.3 KB
aio.c -rw-r--r-- 43.8 KB
attr.c -rw-r--r-- 4.2 KB
bad_inode.c -rw-r--r-- 2.8 KB
binfmt_aout.c -rw-r--r-- 14.8 KB
binfmt_elf.c -rw-r--r-- 45.7 KB
binfmt_elf_fdpic.c -rw-r--r-- 30.0 KB
binfmt_em86.c -rw-r--r-- 2.8 KB
binfmt_flat.c -rw-r--r-- 26.0 KB
binfmt_misc.c -rw-r--r-- 15.7 KB
binfmt_script.c -rw-r--r-- 2.7 KB
binfmt_som.c -rw-r--r-- 7.6 KB
bio.c -rw-r--r-- 30.0 KB
block_dev.c -rw-r--r-- 28.9 KB
buffer.c -rw-r--r-- 83.2 KB
char_dev.c -rw-r--r-- 9.2 KB
compat.c -rw-r--r-- 52.5 KB
compat_ioctl.c -rw-r--r-- 83.6 KB
dcache.c -rw-r--r-- 44.7 KB
dcookies.c -rw-r--r-- 6.4 KB
direct-io.c -rw-r--r-- 35.0 KB
dnotify.c -rw-r--r-- 4.3 KB
dquot.c -rw-r--r-- 52.5 KB
drop_caches.c -rw-r--r-- 1.4 KB
eventpoll.c -rw-r--r-- 44.0 KB
exec.c -rw-r--r-- 35.1 KB
fcntl.c -rw-r--r-- 13.7 KB
fifo.c -rw-r--r-- 3.1 KB
file.c -rw-r--r-- 8.6 KB
file_table.c -rw-r--r-- 6.7 KB
filesystems.c -rw-r--r-- 5.2 KB
fs-writeback.c -rw-r--r-- 19.8 KB
inode.c -rw-r--r-- 36.5 KB
inotify.c -rw-r--r-- 29.0 KB
ioctl.c -rw-r--r-- 3.9 KB
ioprio.c -rw-r--r-- 3.6 KB
libfs.c -rw-r--r-- 15.4 KB
locks.c -rw-r--r-- 55.8 KB
mbcache.c -rw-r--r-- 18.2 KB
mpage.c -rw-r--r-- 22.8 KB
namei.c -rw-r--r-- 66.5 KB
namespace.c -rw-r--r-- 45.1 KB
nfsctl.c -rw-r--r-- 2.4 KB
open.c -rw-r--r-- 27.5 KB
pipe.c -rw-r--r-- 21.3 KB
pnode.c -rw-r--r-- 7.7 KB
pnode.h -rw-r--r-- 1013 bytes
posix_acl.c -rw-r--r-- 8.5 KB
quota.c -rw-r--r-- 8.9 KB
quota_v1.c -rw-r--r-- 5.7 KB
quota_v2.c -rw-r--r-- 20.1 KB
read_write.c -rw-r--r-- 16.2 KB
readdir.c -rw-r--r-- 6.7 KB
select.c -rw-r--r-- 19.8 KB
seq_file.c -rw-r--r-- 9.6 KB
splice.c -rw-r--r-- 33.7 KB
stat.c -rw-r--r-- 10.5 KB
super.c -rw-r--r-- 20.1 KB
sync.c -rw-r--r-- 4.4 KB
xattr.c -rw-r--r-- 13.3 KB
xattr_acl.c -rw-r--r-- 2.3 KB

back to top