[OpenAFS-devel] Re: understanding afs_remunlink() and why .__afsXXX don't get cleaned up

chas williams - CONTRACTOR chas@cmf.nrl.navy.mil
Thu, 04 Jan 2007 22:47:59 -0500


In message <Pine.GSO.4.61-042.0701042207540.969@johnstown.andrew.cmu.edu>,Derrick J Brashear writes:
>> vnode_get() returns an error if a vnode is marked DEAD or TERMINATE.
>> i dont see why you wouldnt want to remove the unlinked file in this
>> case.
>
>this is probably it.

after looking at the code a bit, vclean() marks the vnode
VL_TERMINATE and then winds up calling VNOP_INACTIVE().  i
guess i understand afs_remlink()'s desire to hold a reference
while it removes the vnode/vcache, but i dont think anyone
can get a reference to the vnode during vclean()/inactive().