From owner-cvs-all@FreeBSD.ORG Sun Oct 5 13:20:50 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5E47E16A4BF; Sun, 5 Oct 2003 13:20:50 -0700 (PDT) Received: from mail.chesapeake.net (chesapeake.net [208.142.252.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8CDDF43FE9; Sun, 5 Oct 2003 13:20:46 -0700 (PDT) (envelope-from jroberson@chesapeake.net) Received: from localhost (jroberson@localhost) by mail.chesapeake.net (8.11.6/8.11.6) with ESMTP id h95KKjX29785; Sun, 5 Oct 2003 16:20:45 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Sun, 5 Oct 2003 16:20:45 -0400 (EDT) From: Jeff Roberson To: Don Lewis In-Reply-To: <200310052017.h95KHEN1049884@gw.catspoiler.org> Message-ID: <20031005161928.E99666-100000@mail.chesapeake.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: jeff@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern vfs_subr.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Oct 2003 20:20:50 -0000 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