Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Sep 2002 06:42:45 -0700 (PDT)
From:      Don Lewis <dl-freebsd@catspoiler.org>
To:        truckman@FreeBSD.org
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
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
Message-ID:  <200209191342.g8JDgjwr022690@gw.catspoiler.org>
In-Reply-To: <200209191332.g8JDWkoF073261@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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




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