From owner-cvs-all Thu Jun 13 14:49:18 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 3961337B42A; Thu, 13 Jun 2002 14:49:10 -0700 (PDT) Received: (from semenu@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g5DLnAa93770; Thu, 13 Jun 2002 14:49:10 -0700 (PDT) (envelope-from semenu) Message-Id: <200206132149.g5DLnAa93770@freefall.freebsd.org> From: Semen Ustimenko Date: Thu, 13 Jun 2002 14:49:10 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/fs/nullfs null.h null_subr.c null_vfsops.c null_vnops.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG semenu 2002/06/13 14:49:10 PDT Modified files: sys/fs/nullfs null.h null_subr.c null_vfsops.c null_vnops.c Log: Fix a race during null node creation between relookuping the hash and adding vnode to hash. The fix is to use atomic hash-lookup-and-add-if- not-found operation. The odd thing is that this race can't happen actually because the lowervp vnode is locked exclusively now during the whole process of null node creation. This must be thought as a step toward shared lookups. Also remove vp->v_mount checks when looking for a match in the hash, as this is the vestige. Also add comments and cosmetic changes. Revision Changes Path 1.18 +1 -1 src/sys/fs/nullfs/null.h 1.35 +86 -96 src/sys/fs/nullfs/null_subr.c 1.53 +3 -3 src/sys/fs/nullfs/null_vfsops.c 1.56 +13 -6 src/sys/fs/nullfs/null_vnops.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message