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
This commit is contained in:
Mikel Lechner 2023-10-21 09:08:38 +03:00 committed by Konstantin Belousov
parent 7a974a6498
commit 2fee397460

View file

@ -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.