Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Sep 2002 16:15:51 +0100
From:      Ian Dowse <iedowse@maths.tcd.ie>
To:        Don Lewis <dl-freebsd@catspoiler.org>
Cc:        current@FreeBSD.ORG, jeff@FreeBSD.ORG
Subject:   Re: nfs_inactive() bug? -> panic: lockmgr: locking against myself 
Message-ID:   <200209121615.aa61506@salmon.maths.tcd.ie>
In-Reply-To: Your message of "Thu, 12 Sep 2002 06:50:33 PDT." <200209121350.g8CDoXwr000721@gw.catspoiler.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <200209121350.g8CDoXwr000721@gw.catspoiler.org>, Don Lewis writes:
>After looking at ufs_inactive(), I'd like to add a fourth proposal

And I've just remembered a fifth :-) I think the old BSD code had
both an `open' count and a reference count. The open count is a
count of the real users of the vnode (it is what ufs_inactive really
wants to compare against 0), and the reference count is just for
places that you don't want the vnode to be recycled or destroyed.
This was probably lost when the encumbered BSD sources were rewritten.

At the time I was looking at it last, I remember thinking that the
open count would allow vrele/vput to keep the reference count at 1
during the VOP_INACTIVE() call, which is what you were proposing.
It would also allow us to fix the problem of many places not matching
each VOP_OPEN() with a VOP_CLOSE(). I suspect we could clean up a
lot of related problems if the open count was brought back.

Ian

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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