Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdedf28b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Ben Myers
Browse files

xfs: untangle SYNC_WAIT and SYNC_TRYLOCK meanings for xfs_qm_dqflush



Only skip pinned dquots if SYNC_TRYLOCK is specified, and adjust the callers
to keep the behaviour unchanged.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent b3934213
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1169,7 +1169,7 @@ xfs_qm_dqflush(
	 * If not dirty, or it's pinned and we are not supposed to block, nada.
	 */
	if (!XFS_DQ_IS_DIRTY(dqp) ||
	    (!(flags & SYNC_WAIT) && atomic_read(&dqp->q_pincount) > 0)) {
	    ((flags & SYNC_TRYLOCK) && atomic_read(&dqp->q_pincount) > 0)) {
		xfs_dqfunlock(dqp);
		return 0;
	}
+1 −1
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ xfs_qm_dquot_logitem_push(
	 * lock without sleeping, then there must not have been
	 * anyone in the process of flushing the dquot.
	 */
	error = xfs_qm_dqflush(dqp, 0);
	error = xfs_qm_dqflush(dqp, SYNC_TRYLOCK);
	if (error)
		xfs_warn(dqp->q_mount, "%s: push error %d on dqp %p",
			__func__, error, dqp);
+2 −2
Original line number Diff line number Diff line
@@ -1661,7 +1661,7 @@ xfs_qm_quotacheck(
	 * successfully.
	 */
	if (!error)
		error = xfs_qm_dqflush_all(mp, 0);
		error = xfs_qm_dqflush_all(mp, SYNC_TRYLOCK);

	/*
	 * We can get this error if we couldn't do a dquot allocation inside
@@ -1874,7 +1874,7 @@ xfs_qm_dqreclaim_one(void)
			 * We flush it delayed write, so don't bother
			 * releasing the freelist lock.
			 */
			error = xfs_qm_dqflush(dqp, 0);
			error = xfs_qm_dqflush(dqp, SYNC_TRYLOCK);
			if (error) {
				xfs_warn(mp, "%s: dquot %p flush failed",
					__func__, dqp);