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

cvs@GRAND.CENTRAL.ORG cvs@GRAND.CENTRAL.ORG
Wed, 17 Oct 2001 17:07:49 EDT


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

Modified Files:
	osi_vfs.h osi_vfsops.c osi_vnodeops.c 
Log Message:
DELTA sgi-ip20-work-around-cvt-bug-20011017
AUTHOR chas@cmf.nrl.navy.mil

"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 follows ---
sgi-ip20-work-around-cvt-bug-20011017 openafs/src/afs/IRIX/osi_vfs.h 1.2 1.3
sgi-ip20-work-around-cvt-bug-20011017 openafs/src/afs/IRIX/osi_vfsops.c 1.4 1.5
sgi-ip20-work-around-cvt-bug-20011017 openafs/src/afs/IRIX/osi_vnodeops.c 1.6 1.7