linux/fs/ext3
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
..
acl.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
balloc.c Fix common misspellings 2011-03-31 11:26:23 -03:00
bitmap.c fs: mark nibblemap const 2007-10-17 08:42:47 -07:00
dir.c ext3: speed up file creates by optimizing rec_len functions 2011-01-10 19:04:07 +01:00
ext3_jbd.c ext3: replace remaining __FUNCTION__ occurrences 2008-04-28 08:58:45 -07:00
file.c dquot: cleanup dquot initialize routine 2010-03-05 00:20:30 +01:00
fsync.c block: remove BLKDEV_IFL_WAIT 2010-09-16 20:52:58 +02:00
hash.c ext3: Add support for non-native signed/unsigned htree hash algorithms 2008-10-28 13:21:55 -04:00
ialloc.c fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
inode.c 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
ioctl.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
Kconfig ext3: default to ordered mode 2010-07-23 12:50:55 +02:00
Makefile
namei.c ext3: Fix lock inversion in ext3_symlink() 2011-04-29 23:20:03 +02:00
namei.h
resize.c Fix common misspellings 2011-03-31 11:26:23 -03:00
super.c Fix common misspellings 2011-03-31 11:26:23 -03:00
symlink.c ext3: symlink must be handled via filesystem specific operation 2010-04-12 21:11:39 +02:00
xattr.c ext2,ext3,ext4: clarify comment for extN_xattr_set_handle 2011-01-10 12:10:30 -05:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
xattr_security.c fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
xattr_trusted.c ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00
xattr_user.c ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00