cvs commit: src/sys/kern vfs_subr.c
Jeff Roberson
jroberson at chesapeake.net
Sun Oct 5 13:20:50 PDT 2003
On Sun, 5 Oct 2003, Don Lewis wrote:
> On 5 Oct, Jeff Roberson wrote:
>
> > In vflush we do sleep on the vnode lock. The flags are LK_EXCLUSIVE |
> > LK_INTERLOCK. We dont pass in LK_NOWAIT.
>
> Ohhh ...
>
> I always thought we wouldn't sleep unless we specified LK_RETRY. The
> fine man page isn't terribly helpful about when to use some of the
> flags.
>
> If we hold a reference to an active vnode, can it ever be type VT_NON?
> And if it is of type VT_NON, could it ever morph into some other type
> while we hold the reference? If not, why would we want to specify the
> LK_RETRY flag for such a vnode? Does this mean that way too many users
> of vn_lock() are specifying the LK_RETRY flag?
>
I think so, I've actually just mailed kirk about this. If someone does a
forceclose while you hold a reference it will be cleaned and removed.
Holding either the vi lock or the vnode lock prevents this, however.
Cheers,
Jeff
More information about the cvs-src
mailing list