From owner-cvs-all@FreeBSD.ORG Tue Mar 15 13:49:34 2005 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 0A4EA16A4CE; Tue, 15 Mar 2005 13:49:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE46943D1D; Tue, 15 Mar 2005 13:49:33 +0000 (GMT) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2FDnXD6067631; Tue, 15 Mar 2005 13:49:33 GMT (envelope-from jeff@repoman.freebsd.org) Received: (from jeff@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2FDnXXK067630; Tue, 15 Mar 2005 13:49:33 GMT (envelope-from jeff) Message-Id: <200503151349.j2FDnXXK067630@repoman.freebsd.org> From: Jeff Roberson Date: Tue, 15 Mar 2005 13:49:33 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/fs/nullfs null.h null_subr.c null_vnops.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: Tue, 15 Mar 2005 13:49:34 -0000 jeff 2005-03-15 13:49:33 UTC FreeBSD src repository Modified files: sys/fs/nullfs null.h null_subr.c null_vnops.c Log: - Assume that all lower filesystems now support proper locking. Assert that they set v->v_vnlock. This is true for all filesystems in the tree. - Remove all uses of LK_THISLAYER. If the lower layer is locked, the null layer is locked. We only use vget() to get a reference now. null essentially does no locking. This fixes LOOKUP_SHARED with nullfs. - Remove the special LK_DRAIN considerations, I do not believe this is needed now as LK_DRAIN doesn't destroy the lower vnode's lock, and it's hardly used anymore. - Add one well commented hack to prevent the lowervp from going away while we're in it's VOP_LOCK routine. This can only happen if we're forcibly unmounted while some callers are waiting in the lock. In this case the lowervp could be recycled after we drop our last ref in null_reclaim(). Prevent this with a vhold(). Revision Changes Path 1.23 +0 -2 src/sys/fs/nullfs/null.h 1.47 +22 -58 src/sys/fs/nullfs/null_subr.c 1.85 +41 -130 src/sys/fs/nullfs/null_vnops.c