Index: ufs/ufs/ufs_vnops.c =================================================================== --- ufs/ufs/ufs_vnops.c (revision 181870) +++ ufs/ufs/ufs_vnops.c (working copy) @@ -326,6 +326,21 @@ case VREG: if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); +#ifdef QUOTA + if (VOP_ISLOCKED(vp, ap->a_td) != LK_EXCLUSIVE) { + vhold(vp); + vn_lock(vp, LK_UPGRADE | LK_RETRY, ap->a_td); + VI_LOCK(vp); + vdropl(vp); + if (vp->v_iflag & VI_DOOMED) { + VI_UNLOCK(vp); + return (ENOENT); + } + VI_UNLOCK(vp); + } + if ((error = getinoquota(ip)) != 0) + return (error); +#endif break; default: break;