cache_purge > cache_zap segmentation fault

Ali Bahar alih at internetDog.org
Thu May 8 12:03:25 PDT 2003


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 at 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.


More information about the freebsd-hackers mailing list