Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Oct 2003 16:20:45 -0400 (EDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Don Lewis <truckman@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern vfs_subr.c
Message-ID:  <20031005161928.E99666-100000@mail.chesapeake.net>
In-Reply-To: <200310052017.h95KHEN1049884@gw.catspoiler.org>

index | next in thread | previous in thread | raw e-mail

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


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031005161928.E99666-100000>