[OpenAFS-devel] afsd on FreeBSD 8.1

Toby Burress kurin@delete.org
Sun, 16 Jan 2011 21:42:18 -0500


I'm playing around with getting the client into a usable state on FreeBSD
8.1, and on that platform if you try to use the disk-based cache, it hangs.

It turns out that this hang is in vn_rdwr() (from
/usr/src/sys/kern/vfs_vops.c).  I've found two ways around this.
The first way is to change src/afs/FBSD/osi_machdep.h to change the
definition of gop_rdwr() to call vn_rdwr_inchunks() instead.

The other way is to lock the vnode with vn_lock(), and then pass the
IO_NODELOCKED flag to gop_rdwr().

My questions are: (a) which of these fixes, if either, is acceptable,
or is there a better way, (b) is -memcache better for fbsd anyway, and
(c) should I just submit this to gerrit?