linux/fs
Jan Kara ae54870a1d ext3: Fix lock inversion in ext3_symlink()
ext3_symlink() cannot call __page_symlink() with transaction open.
__page_symlink() calls ext3_write_begin() which gets page lock which ranks
above transaction start (thus lock ordering is violated) and and also
ext3_write_begin() waits for a transaction commit when we run out of space
which never happens if we hold transaction open.

Fix the problem by stopping a transaction before calling __page_symlink()
(we have to be careful and put inode to orphan list so that it gets deleted
in case of crash) and starting another one after __page_symlink() returns
for addition of symlink into a directory.

Signed-off-by: Jan Kara <jack@suse.cz>
2011-04-29 23:20:03 +02:00
..
9p fs/9p: Fix error reported by coccicheck 2011-04-15 15:26:14 -05:00
adfs Fix common misspellings 2011-03-31 11:26:23 -03:00
affs Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
afs Fix common misspellings 2011-03-31 11:26:23 -03:00
autofs4 Fix common misspellings 2011-03-31 11:26:23 -03:00
befs Fix common misspellings 2011-03-31 11:26:23 -03:00
bfs Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
btrfs Revert wrong fixes for common misspellings 2011-04-26 23:31:11 -07:00
cachefiles Fix common misspellings 2011-03-31 11:26:23 -03:00
ceph Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
cifs CIFS: Fix memory over bound bug in cifs_parse_mount_options 2011-04-21 17:22:43 +00:00
coda codafs: fix build break when CONFIG_PROC_SYSCTL=n 2011-03-25 17:45:16 -07:00
configfs Fix common misspellings 2011-03-31 11:26:23 -03:00
cramfs
debugfs debugfs: Fix filesystem reference counting on debugfs_remove() failure 2011-02-18 08:07:18 -08:00
devpts fs/devpts/inode.c: correctly check d_alloc_name() return code in devpts_pty_new() 2011-03-22 17:44:17 -07:00
dlm Fix common misspellings 2011-03-31 11:26:23 -03:00
ecryptfs eCryptfs: Flush dirty pages in setattr 2011-04-25 18:49:46 -05:00
efs block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
exofs Fix common misspellings 2011-03-31 11:26:23 -03:00
exportfs vfs: Add open by file handle support 2011-03-15 02:21:44 -04:00
ext2 Fix common misspellings 2011-03-31 11:26:23 -03:00
ext3 ext3: Fix lock inversion in ext3_symlink() 2011-04-29 23:20:03 +02:00
ext4 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-04-11 15:45:47 -07:00
fat Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
freevxfs Fix common misspellings 2011-03-31 11:26:23 -03:00
fscache
fuse Fix common misspellings 2011-03-31 11:26:23 -03:00
gfs2 add hlist_bl_lock/unlock helpers 2011-04-25 18:14:10 -07:00
hfs Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
hfsplus Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
hostfs
hpfs Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
hppfs
hugetlbfs mm: hugetlbfs: change remove_from_page_cache 2011-03-22 17:44:02 -07:00
isofs Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
jbd Fix common misspellings 2011-03-31 11:26:23 -03:00
jbd2 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-04-11 15:45:47 -07:00
jffs2 Fix common misspellings 2011-03-31 11:26:23 -03:00
jfs Fix common misspellings 2011-03-31 11:26:23 -03:00
lockd NLM: Fix "kernel BUG at fs/lockd/host.c:417!" or ".../host.c:283!" 2011-01-25 15:24:47 -05:00
logfs Fix common misspellings 2011-03-31 11:26:23 -03:00
minix Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
ncpfs Fix common misspellings 2011-03-31 11:26:23 -03:00
nfs nfs: don't lose MS_SYNCHRONOUS on remount of noac mount 2011-04-27 16:20:01 -04:00
nfs_common Fix common misspellings 2011-03-31 11:26:23 -03:00
nfsd Open with O_CREAT flag set fails to open existing files on non writable directories 2011-04-20 11:03:01 -04:00
nilfs2 fs: export empty_aops 2011-04-05 23:51:48 +02:00
nls
notify Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
ntfs Fix common misspellings 2011-03-31 11:26:23 -03:00
ocfs2 Revert wrong fixes for common misspellings 2011-04-26 23:31:11 -07:00
omfs Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
openpromfs
partitions fs/partitions/ldm.c: fix oops caused by corrupted partition table 2011-04-14 16:06:54 -07:00
proc proc: do proper range check on readdir offset 2011-04-18 10:36:54 -07:00
pstore Fix common misspellings 2011-03-31 11:26:23 -03:00
qnx4 block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
quota Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 2011-04-08 07:35:17 -07:00
ramfs ramfs: fix memleak on no-mmu arch 2011-04-14 16:06:56 -07:00
reiserfs Fix common misspellings 2011-03-31 11:26:23 -03:00
romfs
squashfs Fix common misspellings 2011-03-31 11:26:23 -03:00
sysfs
sysv Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
ubifs UBIFS: fix master node recovery 2011-04-21 15:27:21 +03:00
udf Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
ufs Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
xfs xfs: fix duplicate message output 2011-04-20 11:36:49 -05:00
Kconfig Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2011-03-16 19:01:29 -07:00
Kconfig.binfmt
Makefile Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2011-03-16 19:01:29 -07:00
aio.c Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
anon_inodes.c
attr.c Fix common misspellings 2011-03-31 11:26:23 -03:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c brk: COMPAT_BRK: fix detection of randomized brk 2011-04-14 16:06:55 -07:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c Fix common misspellings 2011-03-31 11:26:23 -03:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c block: Require subsystems to explicitly allocate bio_set integrity mempool 2011-03-17 11:11:05 +01:00
bio.c Fix common misspellings 2011-03-31 11:26:23 -03:00
block_dev.c Fix common misspellings 2011-03-31 11:26:23 -03:00
buffer.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-03-24 19:01:30 -07:00
char_dev.c
compat.c select: remove unused MAX_SELECT_SECONDS 2011-03-21 00:16:08 -04:00
compat_binfmt_elf.c
compat_ioctl.c
dcache.c add hlist_bl_lock/unlock helpers 2011-04-25 18:14:10 -07:00
dcookies.c
direct-io.c Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
drop_caches.c fs: move i_sb_list out from under inode_lock 2011-03-24 21:16:32 -04:00
eventfd.c Docbook: add fs/eventfd.c and fix typos in it 2011-02-21 15:07:04 -08:00
eventpoll.c Fix common misspellings 2011-03-31 11:26:23 -03:00
exec.c Small typo fix... 2011-03-21 00:16:09 -04:00
fcntl.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
fhandle.c fs/fhandle.c: add <linux/personality.h> for ia64 2011-04-14 16:06:56 -07:00
fifo.c Filesystem: fifo: Fixed coding style issue. 2011-03-21 00:16:09 -04:00
file.c vfs: avoid large kmalloc()s for the fdtable 2011-04-28 11:28:20 -07:00
file_table.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-03-16 13:26:17 -07:00
filesystems.c fs: synchronize_rcu when unregister_filesystem success not failure 2011-04-17 10:42:01 -07:00
fs-writeback.c Fix common misspellings 2011-03-31 11:26:23 -03:00
fs_struct.c
generic_acl.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
inode.c fs: export empty_aops 2011-04-05 23:51:48 +02:00
internal.h fs: move i_wb_list out from under inode_lock 2011-03-24 21:17:51 -04:00
ioctl.c vfs: cleanup do_vfs_ioctl() 2011-03-21 00:16:08 -04:00
ioprio.c
libfs.c
locks.c Merge branch 'for-2.6.39' of git://linux-nfs.org/~bfields/linux 2011-03-24 08:20:39 -07:00
mbcache.c Fix common misspellings 2011-03-31 11:26:23 -03:00
mpage.c fs: make mpage read/write_pages() plug 2011-03-10 08:52:26 +01:00
namei.c vfs: Fix absolute RCU path walk failures due to uninitialized seq number 2011-04-15 15:28:12 -07:00
namespace.c Revert "vfs: Export file system uuid via /proc/<pid>/mountinfo" 2011-04-12 13:35:56 -07:00
nfsctl.c open-style analog of vfs_path_lookup() 2011-03-14 09:15:28 -04:00
no-block.c
open.c fs: Use BUG_ON(!mnt) at dentry_open(). 2011-03-21 01:10:41 -04:00
pipe.c
pnode.c
pnode.h
posix_acl.c NFS: Prevent memory allocation failure in nfsacl_encode() 2011-01-25 15:24:47 -05:00
read_write.c
read_write.h
readdir.c
select.c select: remove unused MAX_SELECT_SECONDS 2011-03-21 00:16:08 -04:00
seq_file.c
signalfd.c
splice.c
stack.c
stat.c readlinkat(), fchownat() and fstatat() with empty relative pathnames 2011-03-15 02:21:45 -04:00
statfs.c clean statfs-like syscalls up 2011-03-14 09:15:28 -04:00
super.c Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
sync.c Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
timerfd.c
utimes.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
xattr.c vfs: Pass setxattr(2) flags properly 2011-04-21 07:34:44 -07:00
xattr_acl.c