Searched hist:dcdbed853d9fbb0547b781ba676049b87f54129a (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/fs/quota/ |
H A D | quota.c | diff dcdbed853d9fbb0547b781ba676049b87f54129a Fri Feb 10 04:03:01 CST 2012 Jan Kara <jack@suse.cz> 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>
|