[OpenAFS-devel] FreeBSD 5-CURRENT + openafs-1.3.65 problems, workarounds

Jeremy Mika jeremym@backboneentertainment.com
Wed, 21 Jul 2004 18:28:13 -0700


  I haven't been following OpenAFS development too closely lately, so
sorry if I'm duplicating. I'm even more sorry that my "workarounds"
are "not-quite-sure-if-it-worksarounds"... that is, I just guessed.

  I just updated my FreeBSD world sources with FreeBSD 5-CURRENT and
had some trouble compiling 1.3.65.

  1. openafs-1.3.65/src/lwp/Makefile

  The Makefile says, for i386_*bsd* to copy the process.i386.s file to
process.S and compile. This didn't work for me. I saw that there was
also a process.fbsd.s and changed the Makefile to use this instead and
it worked. The assembler was spitting out errors like "unknown instruction:
typedef unsigned int u32;" etc.


  2. openafs-1.3.65/src/afs/FBSD/osi_vfsops.c

  In the afs_unmount(...) function, 
  vflush needs another parameter indicating the thread that is performing
the vflush:

    int
     vflush(struct mount *mp, int rootrefs, int flags, struct thread *td);

  I guessed that the THREAD_OR_PROC argument passed to afs_unmount suited
this requirement and passed it onto vflush:

    vflush(mp, 1, (flags & MNT_FORCE) ? FORCECLOSE : 0, p);


  And that seemed to get it to compile, the kernel module loads, but I
haven't fired up a client to see if it is actually DOING anything 
correctly.