fsck_ufs locked in snaplk
Atanas
atanas at asd.aplus.net
Wed Apr 26 01:11:08 UTC 2006
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]);
>>
>>
>
>
More information about the freebsd-stable
mailing list