OpenAFS CVS Commit: openafs/src/afs/IRIX by shadow

Wed, 26 Dec 2001 15:04:46 EST

Update of /cvs/openafs/src/afs/IRIX
In directory GRAND.CENTRAL.ORG:/data/sb/openafs-stable-1.2/openafs/src/afs/IRIX

Modified Files:
      Tag: openafs-stable-1_2_x
	osi_vfs.h osi_vfsops.c osi_vnodeops.c 
Log Message:
DELTA STABLE12-sgi-ip20-work-around-cvt-bug-20011226

"apparently the rev 1 r5000 chips implement 'cvt' incorrectly.  the irix
kernel works around this problem by checking each text page mapped into
memory and doing a fixup on the cvt instructions.  it tries to maintain
a hash of these pages using fid2() or fid() if fid2() returns ENOSYS.
afs, in an effort to prevent people from doing checkpoints on an afs
filesystem, makes fid2() return EINVAL.  this also keeps the kernel from
mapping executables that are in afs space on the broken r5000's.

this is the patch i have been using for the past couple years while
waiting for an official fix.  it makes fid2() return ENOSYS, so you
now need to have to have v_ckpt.  however i disabled the rest of the
CKPT code since i have no idea how well that code actually works.
additionally, this behavior is only functional on machines with the
'broken' r5000 h/w.  i cant think of a better way to fix this problem
since i cant change the irix kernel."

--- DELTA config for openafs-stable-1_2_x follows ---
STABLE12-sgi-ip20-work-around-cvt-bug-20011226 openafs/src/afs/IRIX/osi_vfs.h 1.2
STABLE12-sgi-ip20-work-around-cvt-bug-20011226 openafs/src/afs/IRIX/osi_vfsops.c 1.4
STABLE12-sgi-ip20-work-around-cvt-bug-20011226 openafs/src/afs/IRIX/osi_vnodeops.c 1.6