Commit 8241f7f9 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: don't iunlock the quota ip when quota block

In xfs_qm_dqalloc, we join the locked quota inode to the transaction we
use to allocate blocks.  If the allocation or mapping fails, we're not
allowed to unlock the inode because the transaction code is in charge of
unlocking it for us.  Therefore, remove the iunlock call to avoid
blowing asserts about unbalanced locking + mount hang.

Found by corrupting the AGF and allocating space in the filesystem
(quotacheck) immediately after mount.  The upcoming agfl wrapping fixup
test will trigger this scenario.
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent 19957a18
...@@ -394,8 +394,6 @@ xfs_qm_dqalloc( ...@@ -394,8 +394,6 @@ xfs_qm_dqalloc(
error1: error1:
xfs_defer_cancel(&dfops); xfs_defer_cancel(&dfops);
error0: error0:
xfs_iunlock(quotip, XFS_ILOCK_EXCL);
return error; return error;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment