]> git.michaelhowe.org Git - packages/o/openafs.git/commit
STABLE12-sgi-ip20-work-around-cvt-bug-20011226
authorChas Williams <chas@cmf.nrl.navy.mil>
Wed, 26 Dec 2001 20:04:45 +0000 (20:04 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 26 Dec 2001 20:04:45 +0000 (20:04 +0000)
commit76fcaccf703a644e07615e3dbc94810b59543963
tree6b93ded4a8b5a6448008ba27fb298b17a2394805
parent86fe6711fcce0edecd6e049c393447a22c87829f
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."
src/afs/IRIX/osi_vfs.h
src/afs/IRIX/osi_vfsops.c
src/afs/IRIX/osi_vnodeops.c
src/libafs/MakefileProto.IRIX.in