* [PATCH] xfs: don't iunlock the quota ip when quota block allocation fails
@ 2018-02-22 23:04 Darrick J. Wong
2018-02-22 23:51 ` Darrick J. Wong
0 siblings, 1 reply; 2+ messages in thread
From: Darrick J. Wong @ 2018-02-22 23:04 UTC (permalink / raw)
To: xfs
From: Darrick J. Wong <darrick.wong@oracle.com>
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: Darrick J. Wong <darrick.wong@oracle.com>
---
fs/xfs/xfs_dquot.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
index 43572f8..2410acc 100644
--- a/fs/xfs/xfs_dquot.c
+++ b/fs/xfs/xfs_dquot.c
@@ -394,8 +394,6 @@ xfs_qm_dqalloc(
error1:
xfs_defer_cancel(&dfops);
error0:
- xfs_iunlock(quotip, XFS_ILOCK_EXCL);
-
return error;
}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] xfs: don't iunlock the quota ip when quota block allocation fails
2018-02-22 23:04 [PATCH] xfs: don't iunlock the quota ip when quota block allocation fails Darrick J. Wong
@ 2018-02-22 23:51 ` Darrick J. Wong
0 siblings, 0 replies; 2+ messages in thread
From: Darrick J. Wong @ 2018-02-22 23:51 UTC (permalink / raw)
To: xfs
On Thu, Feb 22, 2018 at 03:04:35PM -0800, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
>
> 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: Darrick J. Wong <darrick.wong@oracle.com>
Realized I had a whole pile of other fixes to send out, so ignore this
for now.
--D
> ---
> fs/xfs/xfs_dquot.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
> index 43572f8..2410acc 100644
> --- a/fs/xfs/xfs_dquot.c
> +++ b/fs/xfs/xfs_dquot.c
> @@ -394,8 +394,6 @@ xfs_qm_dqalloc(
> error1:
> xfs_defer_cancel(&dfops);
> error0:
> - xfs_iunlock(quotip, XFS_ILOCK_EXCL);
> -
> return error;
> }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-02-22 23:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-22 23:04 [PATCH] xfs: don't iunlock the quota ip when quota block allocation fails Darrick J. Wong
2018-02-22 23:51 ` Darrick J. Wong
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.