Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Nov 2002 14:44:39 -0500
From:      "David E. Cross" <crossd@cs.rpi.edu>
To:        Alfred Perlstein <bright@mu.org>
Cc:        "David E. Cross" <crossd@cs.rpi.edu>, freebsd-fs@freebsd.org, crossd@cs.rpi.edu
Subject:   Re: openafs question 
Message-ID:  <200211281944.gASJidO05245@monica.cs.rpi.edu>
In-Reply-To: Message from Alfred Perlstein <bright@mu.org>  of "Thu, 28 Nov 2002 04:35:50 PST." <20021128123550.GM16066@elvis.mu.org> 
References:  <200211281128.gASBS2g04424@monica.cs.rpi.edu>  <20021128123550.GM16066@elvis.mu.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Have getnewvnode add a flag to the vnode noting that it's meant for the
> global list, otherwise store a "free()" callback in the vnode to be called?

I don't think I understand.  In the current code "getnewvnode" is never
called.  What it has is a giant circularly linked list of tvc's, where a 
TVC is defined as something like:

struct tvc {
 misc afs stuff;
 struct free *next;
 struct vnode v;   /* note, _not_ a vnode *, that would make this easy */
}

Whenever it runs out of vnodes it allocates a new tvc (up until "-stat"
parameter). Fills in the "stuff", and shoves it at the top of the tvc used
circle-queue (null-ing out the "next" parameter.. so it maintains its own
free/used lists outside of the vnode).  When it is freed it moves it onto the 
free list and moves it to the tail of the cirleq(I think; I'm not 100% sure
on the moving it to the tail of the circleq at this point).

-- 
David Cross                               | email: crossd@cs.rpi.edu 
Lab Director                              | Rm: 308 Lally Hall
Rensselaer Polytechnic Institute,         | Ph: 518.276.2860            
Department of Computer Science            | Fax: 518.276.4033
I speak only for myself.                  | WinNT:Linux::Linux:FreeBSD

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211281944.gASJidO05245>