[OpenAFS-devel] using system inodes on linux
chas williams - CONTRACTOR
chas@cmf.nrl.navy.mil
Thu, 30 Jun 2005 22:35:20 -0400
In message <FEE5413DC1A69C7CC10E50CD@sphinx.andrew.cmu.edu>,Chaskiel M Grundman writes:
>> any other thoughts on the general patch itself?
>I was initially confused by the removal of all the vcache2inode's, but I=20
>eventually found the afs_getattr's and saw the implications.
that was supposed to be a seperate patch (bug #19433) but everything
mashed together in my local tree.
>I was also concerned about the fact that this (as well as the=20
>getnewvnode-based stuff on XBSD) throws away stat information on files that =
>aren't open/held/whatever. Oh. You dealt with that by keeping one refcount=20
>around that belongs to afs_NewVCache, so that is not a problem either.
actually i borrowed that idea from the OSF code (it makes sense, the
list is a reference). not holding this extra reference is possibly one
of the reasons that for races in the current code. afs vcache entries
seem to make their refcounts go 0->1->0 at times. when 1->0 is done
with iput() this slips the inodes onto the unused (or whatever) list.
afs then rushes to get the inodes back off that list.
>> bits bother me but seem to work. if i handled the afs_remunlink()
>> in .dentry_iput i might not even need afs_InactiveVCache().
>Why do you not want to call InactiveVcache?
i call InactiveVCache when the refcount is going from 2->1. its possible
that the last refcount isnt from the VLRU reference so the inactive is
too soon. i cant see how this would happen but afs always surprises me.