From owner-freebsd-current@FreeBSD.ORG Sun Nov 23 22:53:59 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B4E5016A4CE; Sun, 23 Nov 2003 22:53:59 -0800 (PST) Received: from relay.butya.kz (butya-gw.butya.kz [212.19.129.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id 72F5643FDD; Sun, 23 Nov 2003 22:53:57 -0800 (PST) (envelope-from bp@butya.kz) Received: by relay.butya.kz (Postfix, from userid 1000) id C5472585A; Mon, 24 Nov 2003 12:53:53 +0600 (ALMT) Date: Mon, 24 Nov 2003 12:53:53 +0600 From: Boris Popov To: Don Lewis Message-ID: <20031124065353.GC42142@vertex.kz> References: <200311232357.hANNv1eF006528@gw.catspoiler.org> <200311240016.hAO0GAeF006560@gw.catspoiler.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200311240016.hAO0GAeF006560@gw.catspoiler.org> User-Agent: Mutt/1.4.1i cc: current@FreeBSD.org Subject: Re: null_lookup() vnode locking wierdness X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 06:53:59 -0000 On Sun, Nov 23, 2003 at 04:16:10PM -0800, Don Lewis wrote: > On 23 Nov, I wrote: > > I was trying to figure out why the VOP_UNLOCK() call in null_lookup() > > was violating a vnode locking assertion, so I tossed a bunch of > > ASSERT_VOP_LOCKED() calls into null_lookup(). I found something I don't > > understand ... > > > It looks like the easiest fix is to skip the VOP_UNLOCK() call in > null_lookup() if dvp->v_vnlock == ldvp->v_vnlock. Yes, this seems to be correct and necessary addition. At first sight, the later code shouldn't blow because of that. BTW, buildworld -jN on top of the null mount together with another buildword -jN on the underlying file system helps a lot to discover vnode locking problems. -- Boris Popov http://rbp.euro.ru