Linus Torvalds
32ba9c3fca
Revert "vfs: stop d_splice_alias creating directory aliases"
...
This reverts commit 7732a557b1 (and commit
3f50fff4da , which was a follow-up
cleanup).
We're chasing an elusive bug that Dave Jones can apparently reproduce
using his system call fuzzer tool, and that looks like some kind of
locking ordering problem on the directory i_mutex chain. Our i_mutex
locking is rather complex, and depends on the topological ordering of
the directories, which is why we have been very wary of splicing
directory entries around.
Of course, we really don't want to ever see aliased unconnected
directories anyway, so none of this should ever happen, but this revert
aims to basically get us back to a known older state.
Bruce points to some of the previous discussion at
http://marc.info/?i= <20110310105821.GE22723@ZenIV.linux.org.uk>
and in particular a long post from Neil:
http://marc.info/?i= <20110311150749.2fa2be66@notabene.brown>
It should be noted that it's possible that Dave's problems come from
other changes altohgether, including possibly just the fact that Dave
constantly is teachning his fuzzer new tricks. So what appears to be a
new bug could in fact be an old one that just gets newly triggered, but
reverting these patches as "still under heavy discussion" is the right
thing regardless.
Requested-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-08 10:34:03 -07:00
..
9p
kill v9fs_dentry_from_dir_inode()
2012-05-29 23:28:34 -04:00
adfs
affs
affs: bury unused macros
2012-05-29 23:28:34 -04:00
afs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
autofs4
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
befs
bfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
btrfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
cachefiles
ceph
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
cifs
CIFS: Move get_next_mid to ops struct
2012-06-01 12:35:19 -05:00
coda
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
configfs
cramfs
debugfs
debugfs: Add support to print u32 array in debugfs
2012-04-17 00:18:36 -04:00
devpts
userns: Convert devpts to use kuid/kgid where appropriate
2012-05-15 14:59:26 -07:00
dlm
dlm: NULL dereference on failure in kmem_cache_create()
2012-05-15 10:39:28 -05:00
ecryptfs
get rid of pointless allocations and copying in ecryptfs_follow_link()
2012-05-29 23:28:40 -04:00
efs
exofs
Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
2012-05-28 13:10:41 -07:00
exportfs
->encode_fh() API change
2012-05-29 23:28:33 -04:00
ext2
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
ext3
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
ext4
Ext4 updates for 3.5
2012-06-01 10:12:15 -07:00
fat
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
freevxfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
fscache
fuse
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse
2012-06-05 10:11:11 -07:00
gfs2
->encode_fh() API change
2012-05-29 23:28:33 -04:00
hfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
hfsplus
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
hostfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
hpfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
hppfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
hugetlbfs
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
isofs
->encode_fh() API change
2012-05-29 23:28:33 -04:00
jbd
jbd: Write journal superblock with WRITE_FUA after checkpointing
2012-05-15 23:34:37 +02:00
jbd2
jbd2: use kmem_cache_zalloc wrapper instead of flag
2012-06-01 00:10:32 -04:00
jffs2
- More robust parsing especially of xattr data in JFFS2
2012-06-01 16:55:42 -07:00
jfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
lockd
Merge branch 'for-3.5' of git://linux-nfs.org/~bfields/linux
2012-06-01 08:32:58 -07:00
logfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
minix
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
ncpfs
fs: introduce inode operation ->update_time
2012-06-01 12:07:25 -04:00
nfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
nfs_common
nfsd
Merge branch 'for-3.5' of git://linux-nfs.org/~bfields/linux
2012-06-01 08:32:58 -07:00
nilfs2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
nls
nls: fix (and rename) mac NLS table files and config options
2012-06-01 19:51:22 -07:00
notify
fsnotify: remove unused parameter from send_to_group()
2012-05-30 21:04:53 -04:00
ntfs
fs: introduce inode operation ->update_time
2012-06-01 12:07:25 -04:00
ocfs2
ocfs: simplify symlink handling
2012-05-29 23:28:40 -04:00
omfs
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
openpromfs
proc
vfs: Fix /proc/<tid>/fdinfo/<fd> file handling
2012-06-04 11:00:45 -07:00
pstore
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
qnx4
qnx6
quota
quota: Get rid of nested I_MUTEX_QUOTA locking subclass
2012-05-15 23:34:39 +02:00
ramfs
reiserfs
reiserfs: get rid of resierfs_sync_super
2012-06-01 10:37:36 -04:00
romfs
MTD merge for 3.4
2012-03-30 17:31:56 -07:00
squashfs
Add an extra mount time sanity check, plus some code cleanups and bug fixes.
2012-03-28 18:05:54 -07:00
sysfs
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
sysv
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
ubifs
ubifs: use generic_fillattr()
2012-05-29 23:28:32 -04:00
udf
->encode_fh() API change
2012-05-29 23:28:33 -04:00
ufs
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
xfs
fs: introduce inode operation ->update_time
2012-06-01 12:07:25 -04:00
aio.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
anon_inodes.c
attr.c
vfs: increment iversion when a file is truncated
2012-05-30 21:04:53 -04:00
bad_inode.c
mm/fs: remove truncate_range
2012-05-29 16:22:23 -07:00
binfmt_aout.c
VM: add "vm_mmap()" helper function
2012-04-20 17:29:13 -07:00
binfmt_elf.c
binfmt_elf: switch elf_map() to vm_mmap/vm_munmap
2012-05-30 21:04:55 -04:00
binfmt_elf_fdpic.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2012-05-23 17:42:39 -07:00
binfmt_em86.c
binfmt_flat.c
binfmt_flat: use vm_munmap, we are missing ->mmap_sem there
2012-05-30 21:04:56 -04:00
binfmt_misc.c
vfs: Rename end_writeback() to clear_inode()
2012-05-06 13:43:41 +08:00
binfmt_script.c
binfmt_som.c
VM: add "vm_mmap()" helper function
2012-04-20 17:29:13 -07:00
bio-integrity.c
bio.c
Merge branch 'for-3.5/core' of git://git.kernel.dk/linux-block
2012-05-30 08:52:42 -07:00
block_dev.c
avoid iput() from flusher thread
2012-05-28 09:54:45 -07:00
buffer.c
fs: Move bh_cachep to the __read_mostly section
2012-05-30 21:04:52 -04:00
char_dev.c
compat.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
2012-06-01 11:53:44 -07:00
compat_binfmt_elf.c
compat_ioctl.c
dcache.c
Revert "vfs: stop d_splice_alias creating directory aliases"
2012-06-08 10:34:03 -07:00
dcookies.c
direct-io.c
NFS: Ensure that setattr and getattr wait for O_DIRECT write completion
2012-05-31 11:41:36 -07:00
drop_caches.c
eventfd.c
eventfd: change int to __u64 in eventfd_signal()
2012-05-31 17:49:32 -07:00
eventpoll.c
HAVE_RESTORE_SIGMASK is defined on all architectures now
2012-06-01 12:58:46 -04:00
exec.c
Revert "mm: correctly synchronize rss-counters at exit/exec"
2012-06-07 17:54:07 -07:00
fcntl.c
switch fcntl to fget_raw_light/fput_light
2012-05-29 23:28:30 -04:00
fhandle.c
fifo.c
file.c
Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2012-03-29 18:12:23 -07:00
file_table.c
brlocks/lglocks: API cleanups
2012-05-29 23:28:41 -04:00
filesystems.c
fs-writeback.c
writeback: Avoid iput() from flusher thread
2012-05-06 13:43:41 +08:00
fs_struct.c
generic_acl.c
inode.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
internal.h
vfs: split __dentry_open()
2012-06-01 12:12:00 -04:00
ioctl.c
ioprio.c
Merge branch 'for-3.5/core' of git://git.kernel.dk/linux-block
2012-05-30 08:52:42 -07:00
Kconfig
Kconfig.binfmt
C6X: add support to build with BINFMT_ELF_FDPIC
2012-05-15 09:17:34 -04:00
libfs.c
vfs: make it possible to access the dentry hash/len as one 64-bit entry
2012-05-10 19:54:35 -07:00
locks.c
switch flock to fget_light/fput_light
2012-05-29 23:28:31 -04:00
Makefile
mbcache.c
mount.h
mpage.c
namei.c
vfs: retry last component if opening stale dentry
2012-06-01 12:12:01 -04:00
namespace.c
vfs: umount_tree() might be called on subtree that had never made it
2012-05-30 21:04:55 -04:00
no-block.c
open.c
vfs: nameidata_to_filp(): don't throw away file on error
2012-06-01 12:12:01 -04:00
pipe.c
fs: introduce inode operation ->update_time
2012-06-01 12:07:25 -04:00
pnode.c
brlocks/lglocks: API cleanups
2012-05-29 23:28:41 -04:00
pnode.h
posix_acl.c
proc_namespace.c
brlocks/lglocks: API cleanups
2012-05-29 23:28:41 -04:00
read_write.c
aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()
2012-05-31 17:49:32 -07:00
read_write.h
readdir.c
switch readdir/getdents to fget_light/fput_light
2012-05-29 23:28:29 -04:00
select.c
HAVE_RESTORE_SIGMASK is defined on all architectures now
2012-06-01 12:58:46 -04:00
seq_file.c
signalfd.c
switch signalfd4() to fget_light/fput_light
2012-05-29 23:28:30 -04:00
splice.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-06-01 10:34:35 -07:00
stack.c
stat.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2012-05-23 17:42:39 -07:00
statfs.c
switch statfs to fget_light/fput_light
2012-05-29 23:28:31 -04:00
super.c
sync.c
switch do_fsync() to fget_light()
2012-05-29 23:28:29 -04:00
timerfd.c
utimes.c
switch utimes() to fget_light/fput_light
2012-05-29 23:28:32 -04:00
xattr.c
switch xattr syscalls to fget_light/fput_light
2012-05-29 23:28:30 -04:00
xattr_acl.c