From owner-freebsd-current Sun May 24 15:00:06 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id PAA19932 for freebsd-current-outgoing; Sun, 24 May 1998 15:00:06 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from parkplace.cet.co.jp (parkplace.cet.co.jp [202.32.64.1]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id PAA19888 for ; Sun, 24 May 1998 15:00:03 -0700 (PDT) (envelope-from michaelh@cet.co.jp) Received: from localhost (michaelh@localhost) by parkplace.cet.co.jp (8.8.8/CET-v2.2) with SMTP id VAA04891; Sun, 24 May 1998 21:59:02 GMT Date: Mon, 25 May 1998 06:59:01 +0900 (JST) From: Michael Hancock To: Terry Lambert cc: scrappy@hub.org, freebsd-current@FreeBSD.ORG Subject: Re: May 17th UP machine 'panic' In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sun, 24 May 1998, Michael Hancock wrote: > > The problem is in the vput in quotaoff for the group quota file > > when doing a quotaoff on the user quota file. > > > > Basically, the locking semantics of vget/vput pairings have apparently > > become assymetric? > > vget() is confusing, because the lock flag means don't lock when 0, but > lock if LK_{lock flags} are passed. vput() will always unlock. But I > don't think this is the problem. Tor or Julian might have a patch for this soon. Tor might have identified the problem. vput() doesn't take a process argument and always uses curproc. I suggested splitting up the offending vput() into vrele() and VOP_UNLOCK(). So I guess you are right, vput() is assymetric in that it doesn't take a proc arg, but this would be too much work to fix. I think separating the call to vput() into calls to vrele() and VOP_UNLOCK() only in cases where it's needed would be sufficient. Regards, Mike Hancock To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message