git: 2fee3974603b - main - ufs quotas: fix configuring soft quota grace time

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Sat, 21 Oct 2023 06:10:32 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=2fee3974603bce6f2dc153eb6af459cb4f864ab4

commit 2fee3974603bce6f2dc153eb6af459cb4f864ab4
Author:     Mikel Lechner <mikel@svpal.org>
AuthorDate: 2023-10-21 06:08:38 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-10-21 06:08:38 +0000

    ufs quotas: fix configuring soft quota grace time
    
    The QTF_CLOSING flag needs to be cleared earlier to allow dqget() to
    work.
    
    PR:     274552
    MFC after:      1 week
---
 sys/ufs/ufs/ufs_quota.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c
index 8f77fb3a95d2..78f539bcabd2 100644
--- a/sys/ufs/ufs/ufs_quota.c
+++ b/sys/ufs/ufs/ufs_quota.c
@@ -580,6 +580,15 @@ quotaon(struct thread *td, struct mount *mp, int type, void *fname,
 	VN_LOCK_DSHARE(vp);
 	VOP_UNLOCK(vp);
 	*vpp = vp;
+
+	/*
+	 * Allow the getdq from getinoquota below to read the quota
+	 * from file.
+	 */
+	UFS_LOCK(ump);
+	ump->um_qflags[type] &= ~QTF_CLOSING;
+	UFS_UNLOCK(ump);
+
 	/*
 	 * Save the credential of the process that turned on quotas.
 	 * Set up the time limits for this quota.
@@ -594,13 +603,6 @@ quotaon(struct thread *td, struct mount *mp, int type, void *fname,
 			ump->um_itime[type] = dq->dq_itime;
 		dqrele(NULLVP, dq);
 	}
-	/*
-	 * Allow the getdq from getinoquota below to read the quota
-	 * from file.
-	 */
-	UFS_LOCK(ump);
-	ump->um_qflags[type] &= ~QTF_CLOSING;
-	UFS_UNLOCK(ump);
 	/*
 	 * Search vnodes associated with this mount point,
 	 * adding references to quota file being opened.