summaryrefslogtreecommitdiff
path: root/fs/compat.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2012-02-10 11:03:01 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2012-02-13 20:45:39 -0500
commitdcdbed853d9fbb0547b781ba676049b87f54129a (patch)
tree6f8f2382e7aef99ec21ae9c4dfbfe18e47d4626c /fs/compat.c
parent6b6dc836a195e077e76977b6c020a73de411b46d (diff)
quota: Fix deadlock with suspend and quotas
This script causes a kernel deadlock: set -e DEVICE=/dev/vg1/linear lvchange -ay $DEVICE mkfs.ext3 $DEVICE mount -t ext3 -o usrquota,grpquota $DEVICE /mnt/test quotacheck -gu /mnt/test umount /mnt/test mount -t ext3 -o usrquota,grpquota $DEVICE /mnt/test quotaon /mnt/test dmsetup suspend $DEVICE setquota -u root 1 2 3 4 /mnt/test & sleep 1 dmsetup resume $DEVICE setquota acquired semaphore s_umount for read and then tried to perform a transaction (and waits because the device is suspended). dmsetup resume tries to acquire s_umount for write before resuming the device (and waits for setquota). Fix the deadlock by grabbing a thawed superblock for quota commands which need it. Reported-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/compat.c')
0 files changed, 0 insertions, 0 deletions