diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c index 8f77fb3a95d..78f539bcabd 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.