Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Mar 2005 01:59:08 -0500 (EST)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Jeff Roberson <jeff@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys vnode.h src/sys/kern vfs_subr.c
Message-ID:  <20050324015815.E20708@mail.chesapeake.net>
In-Reply-To: <200503240608.j2O68wtF015240@repoman.freebsd.org>
References:  <200503240608.j2O68wtF015240@repoman.freebsd.org>

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

On Thu, 24 Mar 2005, Jeff Roberson wrote:

> jeff        2005-03-24 06:08:58 UTC
>
>   FreeBSD src repository
>
>   Modified files:
>     sys/sys              vnode.h
>     sys/kern             vfs_subr.c
>   Log:
>    - If vput() is called with a shared lock it must upgrade to an exclusive
>      before it can call VOP_INACTIVE().  This must use the EXCLUPGRADE path
>      because we may violate some lock order with another locked vnode if
>      we drop and reacquire the lock.  If EXCLUPGRADE fails, we mark the
>      vnode with VI_OWEINACT.  This case should be very rare.

This was definitely a bug with LOOKUP_SHARED, but I don't know that it
caused anyone problems.  I'm still thinking about more elegant ways of
solving this as I add more shared lock support.

>    - Clear VI_OWEINACT in vinactive() and vbusy().
>    - If VI_OWEINACT is set in vgone() do the VOP_INACTIVE call here as well.
>
>   Sponsored by:   Isilon Systems, Inc.
>
>   Revision  Changes    Path
>   1.597     +12 -3     src/sys/kern/vfs_subr.c
>   1.294     +1 -0      src/sys/sys/vnode.h
>



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