From owner-freebsd-hackers@FreeBSD.ORG Thu May 8 12:03:24 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CC76B37B401 for ; Thu, 8 May 2003 12:03:24 -0700 (PDT) Received: from internetDog.org (CPE00010230ac1b-CM014490005040.cpe.net.cable.rogers.com [24.102.167.64]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2977043FB1 for ; Thu, 8 May 2003 12:03:23 -0700 (PDT) (envelope-from alih@internetDog.org) Received: from alih by internetDog.org with local (Exim 3.12 #1 (Debian)) id 19Dqg9-0008Jr-00 for ; Thu, 08 May 2003 15:03:41 -0400 Date: Thu, 8 May 2003 15:03:41 -0400 From: Ali Bahar To: freebsd-hackers@freebsd.org Message-ID: <20030508150341.B28906@internetDog.org> Mail-Followup-To: freebsd-hackers@freebsd.org References: <20030508140210.B26126@internetDog.org> <1342.1052417320@critter.freebsd.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <1342.1052417320@critter.freebsd.dk>; from phk@phk.freebsd.dk on Thu, May 08, 2003 at 08:08:40PM +0200 Subject: Re: cache_purge > cache_zap segmentation fault X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: alih@internetDog.org List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 May 2003 19:03:25 -0000 Hi dude, (not quite sure which'd be your first name. 'phk' is how I remember you by!) On Thu, May 08, 2003 at 08:08:40PM +0200, Poul-Henning Kamp wrote: > In message <20030508140210.B26126@internetDog.org>, Ali Bahar writes: > >I still need to understand the difference between a vnode's > >v_cache_src and v_cache_dst (IOW, a namecache's nc_src and nc_dst), > > One is for the chain which a (directory) vnode sources, the other > is the chain where the (any type) vnode hangs from it's parent > directory. Hmm. Forgive me, but I went over the above sentence 20 times, and I'm still not sure. Given the vnode for /usr/src, - is its v_cache_dst a linked list of namecache entries for /usr, - & its v_cache_src a linked list of namecache entries for /usr/src/sys ? Or vice versa? Or neither? Why would there be a _chain_ of namecache nodes for a file's parent? I assume that symbolic links are involved (from another dir to this file). Would you know if the 5.0 modifications could fix this problem? My reading of the problem is: As a new file/dir is being accessed, a new vnode is obtained thru getnewvnode. But vnodes are recycled, and so the 'new' vnode has to be cleaned up. This means that all its old associations/resources have to be deleted. What is happening in cache_zap, is that its "source vnode list" of namecache entries is being deleted. In the deletion, it comes across a dangling/corrupt namecache node. Thank you very much for your help. Much appreciated. regards, ali -- Jesus was an Arab.