[OpenAFS-port-freebsd] FreeBSD/OpenAFS working, mostly
Tom Maher
tardis@watson.org
11 Jul 2002 16:47:56 -0400
Nickolai Zeldovich <kolya@MIT.EDU> writes:
> On Thu, 11 Jul 2002 13:41:38 EDT, "David E. Cross" <crossd@cs.rpi.edu> wrote:
>
> > What I have no clue on is code path. After an RX packet is
> > received who gets it, the kernel? afsd? If someone lets me know this
> > I can begin tracing code paths and see where these chunks are going.
>
> Seeing as how most things appear to work fine, I'd guess that Rx isn't
> at fault, so you probably don't want to trace through all of that code.
> Above Rx, you probably want to look at afs_GetDCache, which fetches the
> data from the server using Rx and stores it in a cache file. I'm not
> really familiar with the "aforementioned cache problem" that you refer
> to, so I'm not sure what else to suggest. Actually, you might also want
> to look at afs/FBSD/osi_file.c, which contains functions used by the
> "portable" parts of the cache manager to access the disk cache.
I've been flailing around in src/afs/afs_dcache.c for a few weeks now.
Something seems to be randomly changing the alen & aoffset out from
under me, causing it to just give up after the first chunk. I'm not
entirely sure why, and I've been trying to track it down.
See
http://www.ece.cmu.edu/~tardis/openafs/oafs-fbsd-2002-07-05.patch
and
http://www.ece.cmu.edu/~tardis/openafs/oafs-fbsd-syslog-2002-07-05
The part we care about, I think, is in afs_GetDCache(), in the if clause
starting with
/*
* We must read in the whole chunk if the version number doesn't
* match.
*/
if (aflags & 2) {
--
Tom Maher