Kris Kennaway said the following on 4/25/06 9:22 AM:
On Tue, Apr 25, 2006 at 06:39:09PM +0300, Kostik Belousov wrote:

Obviously, revisions 1.78, 1.79 of the sys/ufs/ufs/ufs_quota.c
shall be MFCed. Try this patch (note, I does not tested it):

WTF, I could have sworn I merged that! Yes, this patch is needed. However, I don't think it's the cause of runtime deadlocks.

Thanks for the heads up!
I was just about to release the next production box without checking
that and assuming the QUOTA fix was already in place.

I would like to confirm that I have another fully loaded server running
6.1-PRERELEASE (BETA2 based on 6-STABLE) from Mar 1 with manually
patched sys/ufs/ufs/ufs_quota.c (1.74.2.1 2006/01/14) with a similar
diff generated from CURRENT between 1.77 and 1.80.

55 days uptime and no problems so far.

Regards,
Atanas

P.S. Forgot to CC the list, sorry for the double post.

Index: sys/ufs/ufs/ufs_quota.c
===================================================================
RCS file: /usr/local/arch/ncvs/src/sys/ufs/ufs/ufs_quota.c,v
retrieving revision 1.77
retrieving revision 1.79
diff -u -r1.77 -r1.79
--- sys/ufs/ufs/ufs_quota.c     9 Jan 2006 20:42:19 -0000       1.77
+++ sys/ufs/ufs/ufs_quota.c     12 Feb 2006 13:20:06 -0000      1.79
@@ -429,8 +429,9 @@
                quotaoff(td, mp, type);
        ump->um_qflags[type] |= QTF_OPENING;
        mp->mnt_flag |= MNT_QUOTA;
-       ASSERT_VOP_LOCKED(vp, "quotaon");
+       vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
        vp->v_vflag |= VV_SYSTEM;
+       VOP_UNLOCK(vp, 0, td);
        *vpp = vp;
        /*
         * Save the credential of the process that turned on quotas.
@@ -535,8 +536,9 @@
        }
        MNT_IUNLOCK(mp);
        dqflush(qvp);
-       ASSERT_VOP_LOCKED(qvp, "quotaoff");
+       vn_lock(qvp, LK_EXCLUSIVE | LK_RETRY, td);
        qvp->v_vflag &= ~VV_SYSTEM;
+       VOP_UNLOCK(qvp, 0, td);
        error = vn_close(qvp, FREAD|FWRITE, td->td_ucred, td);
        ump->um_quotas[type] = NULLVP;
        crfree(ump->um_cred[type]);






_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to