From owner-cvs-all Thu Sep 19 6:42:55 2002 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 18C4D37B401; Thu, 19 Sep 2002 06:42:54 -0700 (PDT) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8798C43E42; Thu, 19 Sep 2002 06:42:53 -0700 (PDT) (envelope-from dl-freebsd@catspoiler.org) Received: from mousie.catspoiler.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.12.5/8.12.5) with ESMTP id g8JDgjwr022690; Thu, 19 Sep 2002 06:42:49 -0700 (PDT) (envelope-from dl-freebsd@catspoiler.org) Message-Id: <200209191342.g8JDgjwr022690@gw.catspoiler.org> Date: Thu, 19 Sep 2002 06:42:45 -0700 (PDT) From: Don Lewis Subject: Re: cvs commit: src/sys/fs/unionfs union_vnops.c src/sys/gnu/ext2fs ext2_vnops.c src/sys/kern vfs_syscalls.c vnode_if.src src/sys/ufs/ufs ufs_vnops.c To: truckman@FreeBSD.org Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org In-Reply-To: <200209191332.g8JDWkoF073261@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii 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 On 19 Sep, Don Lewis wrote: > truckman 2002/09/19 06:32:46 PDT > > Modified files: > sys/fs/unionfs union_vnops.c > sys/gnu/ext2fs ext2_vnops.c > sys/kern vfs_syscalls.c vnode_if.src > sys/ufs/ufs ufs_vnops.c > Log: > VOP_FSYNC() requires that it's vnode argument be locked, which nfs_link() > wasn't doing. Rather than just lock and unlock the vnode around the call > to VOP_FSYNC(), implement rwatson's suggestion to lock the file vnode > in kern_link() before calling VOP_LINK(), since the other filesystems > also locked the file vnode right away in their link methods. Remove the > locking and and unlocking from the leaf filesystem link methods. > > Reviewed by: rwatson, bde (except for the unionfs_link() changes) > > Revision Changes Path > 1.91 +15 -8 src/sys/fs/unionfs/union_vnops.c > 1.72 +4 -11 src/sys/gnu/ext2fs/ext2_vnops.c > 1.287 +3 -1 src/sys/kern/vfs_syscalls.c > 1.57 +1 -1 src/sys/kern/vnode_if.src > 1.208 +4 -11 src/sys/ufs/ufs/ufs_vnops.c I was unable to test the union_copyup() case in union_link() because kern_link() calls vn_start_write() which calls VOP_GETWRITE_MOUNT() before the call to VOP_LINK(), and union_getwritemount() fails with EACCES because the upper vnode doesn't exist. Because vn_start_write() returns the EACCES error, kern_link() bails out before calling VOP_LINK(). To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message