linux/fs/ext3
Jan Kara f00c9e44ad quota: Fix deadlock during path resolution
As Al Viro pointed out path resolution during Q_QUOTAON calls to quotactl
is prone to deadlocks. We hold s_umount semaphore for reading during the
path resolution and resolution itself may need to acquire the semaphore
for writing when e. g. autofs mountpoint is passed.

Solve the problem by performing the resolution before we get hold of the
superblock (and thus s_umount semaphore). The whole thing is complicated
by the fact that some filesystems (OCFS2) ignore the path argument. So to
distinguish between filesystem which want the path and which do not we
introduce new .quota_on_meta callback which does not get the path. OCFS2
then uses this callback instead of old .quota_on.

CC: Al Viro <viro@ZenIV.linux.org.uk>
CC: Christoph Hellwig <hch@lst.de>
CC: Ted Ts'o <tytso@mit.edu>
CC: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Jan Kara <jack@suse.cz>
2011-01-12 19:14:55 +01:00
..
acl.c ext2,3,4: provide simple rcu-walk ACL implementation 2011-01-07 17:50:30 +11:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
balloc.c ext3: Add batched discard support for ext3 2011-01-10 19:03:58 +01: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 ext3: Fix lost extented attributes for inode with ino == 11 2010-10-05 12:20:23 +02:00
inode.c ext3: Add more journal error check 2011-01-10 19:04:06 +01:00
ioctl.c ext3: Add FITRIM handling 2011-01-10 19:04:05 +01:00
Kconfig ext3: default to ordered mode 2010-07-23 12:50:55 +02:00
Makefile [PATCH] ext3: uninline large functions 2006-12-07 08:39:35 -08:00
namei.c ext3: Remove redundant unlikely() 2011-01-10 19:04:07 +01:00
namei.h
resize.c ext3: Add journal error check in resize.c 2011-01-10 19:04:06 +01:00
super.c quota: Fix deadlock during path resolution 2011-01-12 19:14:55 +01:00
symlink.c ext3: symlink must be handled via filesystem specific operation 2010-04-12 21:11:39 +02:00
xattr_security.c ext3: constify xattr handlers 2010-05-21 18:31:19 -04: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
xattr.c ext2,ext3,ext4: clarify comment for extN_xattr_set_handle 2011-01-10 12:10:30 -05:00
xattr.h ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00