diff options
| author | Christoph Hellwig <hch@lst.de> | 2025-11-10 14:23:06 +0100 |
|---|---|---|
| committer | Carlos Maiolino <cem@kernel.org> | 2025-11-11 11:45:58 +0100 |
| commit | 7dd30acb4b3724ec4ecad1a6e2e19a33c0f0ace4 (patch) | |
| tree | 4a48fc25c0cde8cfb3c9561046c8c115db4dcf0f | |
| parent | bfca8760f47ecda61441950babbea6f79a51b377 (diff) | |
xfs: move q_qlock locking into xqcheck_compare_dquot
Instead of having both callers do it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
| -rw-r--r-- | fs/xfs/scrub/quotacheck.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/fs/xfs/scrub/quotacheck.c b/fs/xfs/scrub/quotacheck.c index 20220afd90f1..d412a8359784 100644 --- a/fs/xfs/scrub/quotacheck.c +++ b/fs/xfs/scrub/quotacheck.c @@ -563,6 +563,7 @@ xqcheck_compare_dquot( return -ECANCELED; } + mutex_lock(&dq->q_qlock); mutex_lock(&xqc->lock); error = xfarray_load_sparse(counts, dq->q_id, &xcdq); if (error) @@ -589,7 +590,9 @@ xqcheck_compare_dquot( xchk_set_incomplete(xqc->sc); error = -ECANCELED; } +out_unlock: mutex_unlock(&xqc->lock); + mutex_unlock(&dq->q_qlock); if (error) return error; @@ -597,10 +600,6 @@ xqcheck_compare_dquot( return -ECANCELED; return 0; - -out_unlock: - mutex_unlock(&xqc->lock); - return error; } /* @@ -635,9 +634,7 @@ xqcheck_walk_observations( if (error) return error; - mutex_lock(&dq->q_qlock); error = xqcheck_compare_dquot(xqc, dqtype, dq); - mutex_unlock(&dq->q_qlock); xfs_qm_dqrele(dq); if (error) return error; @@ -675,9 +672,7 @@ xqcheck_compare_dqtype( /* Compare what we observed against the actual dquots. */ xchk_dqiter_init(&cursor, sc, dqtype); while ((error = xchk_dquot_iter(&cursor, &dq)) == 1) { - mutex_lock(&dq->q_qlock); error = xqcheck_compare_dquot(xqc, dqtype, dq); - mutex_unlock(&dq->q_qlock); xfs_qm_dqrele(dq); if (error) break; |
