hi, > On Sun, May 10, 2009 at 05:18:26AM +0000, YAMAMOTO Takashi wrote: > > Module Name: src > > Committed By: yamt > > Date: Sun May 10 05:18:26 UTC 2009 > > > > Modified Files: > > src/sys/nfs: nfs_vnops.c > > > > Log Message: > > nfs_lookup: vn_lock the vnode returned by cache_lookup_raw > > before feeding it to VOP_GETATTR. it's necessary because the vnode might > > be being cleaned by getcleanvnode. > > > > it's an instance of more general races between vnode reclaim and > > unlocked VOPs. however, this one happens somewhat often because it can be > > triggered by getnewvnode rather than revoke. > > This seems a bit odd; cache_lookup_raw returns a reference to the > vnode, so the vnode shouldn't *be* getting reclaimed after that. > > Or so I'd think. (?)
there is a race. see PR/41374. besides that, a vnode reference does not prevent revoke(2). YAMAMOTO Takashi > > -- > David A. Holland > dholl...@netbsd.org