Subject: CVS commit: src
To: None <>
From: Chuck Silvers <>
List: source-changes
Date: 12/09/2006 16:11:53
Module Name:	src
Committed By:	chs
Date:		Sat Dec  9 16:11:52 UTC 2006

Modified Files:
	src/share/man/man9: namei.9 vnodeops.9
	src/sys/coda: coda_vfsops.c coda_vnops.c
	src/sys/fs/adosfs: adlookup.c
	src/sys/fs/cd9660: cd9660_lookup.c
	src/sys/fs/filecorefs: filecore_lookup.c filecore_vfsops.c
	src/sys/fs/msdosfs: msdosfs_lookup.c msdosfs_vnops.c
	src/sys/fs/ntfs: ntfs.h ntfs_vnops.c
	src/sys/fs/ptyfs: ptyfs_vfsops.c ptyfs_vnops.c
	src/sys/fs/puffs: puffs_vfsops.c puffs_vnops.c
	src/sys/fs/smbfs: smbfs_vfsops.c smbfs_vnops.c
	src/sys/fs/sysvbfs: sysvbfs.c sysvbfs_vnops.c
	src/sys/fs/tmpfs: tmpfs_vnops.c
	src/sys/fs/udf: udf_vnops.c
	src/sys/fs/union: union_subr.c union_vfsops.c union_vnops.c
	src/sys/kern: vfs_cache.c vfs_getcwd.c vfs_lookup.c vfs_syscalls.c
	src/sys/miscfs/deadfs: dead_vnops.c
	src/sys/miscfs/fdesc: fdesc_vfsops.c fdesc_vnops.c
	src/sys/miscfs/genfs: layer_subr.c layer_vnops.c
	src/sys/miscfs/kernfs: kernfs_vfsops.c kernfs_vnops.c
	src/sys/miscfs/portal: portal_vfsops.c portal_vnops.c
	src/sys/miscfs/procfs: procfs_vfsops.c procfs_vnops.c
	src/sys/miscfs/umapfs: umap_vnops.c
	src/sys/nfs: nfs_export.c nfs_serv.c nfs_subs.c nfs_vnops.c
	src/sys/sys: namei.h
	src/sys/ufs/ext2fs: ext2fs_lookup.c ext2fs_vnops.c
	src/sys/ufs/lfs: lfs_vnops.c
	src/sys/ufs/ufs: ufs_extattr.c ufs_lookup.c ufs_vnops.c
	src/sys/uvm: uvm_vnode.c

Log Message:
a smorgasbord of improvements to vnode locking and path lookup:
 - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP().
   these now always return the parent vnode locked.  namei() works as before.
   lookup() and various other paths no longer acquire vnode locks in the
   wrong order via vrele().  fixes PR 32535.
   as a nice side effect, path lookup is also up to 25% faster.
 - the above allows us to get rid of PDIRUNLOCK.
 - also get rid of WANTPARENT (just use LOCKPARENT and unlock it).
 - remove an assumption in layer_node_find() that all file systems implement
   a recursive VOP_LOCK() (unionfs doesn't).
 - require that all file systems supply vfs_vptofh and vfs_fhtovp routines.
   fill in eopnotsupp() for file systems that don't support being exported
   and remove the checks for NULL.  (layerfs calls these without checking.)
 - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just
   adjust which vnode is locked.  fixes PR 33374.
 - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().

To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 src/share/man/man9/namei.9
cvs rdiff -r1.58 -r1.59 src/share/man/man9/vnodeops.9
cvs rdiff -r1.52 -r1.53 src/sys/coda/coda_vfsops.c
cvs rdiff -r1.50 -r1.51 src/sys/coda/coda_vnops.c
cvs rdiff -r1.8 -r1.9 src/sys/fs/adosfs/adlookup.c
cvs rdiff -r1.11 -r1.12 src/sys/fs/cd9660/cd9660_lookup.c
cvs rdiff -r1.7 -r1.8 src/sys/fs/filecorefs/filecore_lookup.c
cvs rdiff -r1.28 -r1.29 src/sys/fs/filecorefs/filecore_vfsops.c
cvs rdiff -r1.10 -r1.11 src/sys/fs/msdosfs/msdosfs_lookup.c
cvs rdiff -r1.34 -r1.35 src/sys/fs/msdosfs/msdosfs_vnops.c
cvs rdiff -r1.14 -r1.15 src/sys/fs/ntfs/ntfs.h
cvs rdiff -r1.30 -r1.31 src/sys/fs/ntfs/ntfs_vnops.c
cvs rdiff -r1.21 -r1.22 src/sys/fs/ptyfs/ptyfs_vfsops.c
cvs rdiff -r1.18 -r1.19 src/sys/fs/ptyfs/ptyfs_vnops.c
cvs rdiff -r1.14 -r1.15 src/sys/fs/puffs/puffs_vfsops.c
cvs rdiff -r1.21 -r1.22 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -r1.60 -r1.61 src/sys/fs/smbfs/smbfs_vfsops.c
cvs rdiff -r1.56 -r1.57 src/sys/fs/smbfs/smbfs_vnops.c
cvs rdiff -r1.2 -r1.3 src/sys/fs/sysvbfs/sysvbfs.c
cvs rdiff -r1.5 -r1.6 src/sys/fs/sysvbfs/sysvbfs_vnops.c
cvs rdiff -r1.32 -r1.33 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -r1.7 -r1.8 src/sys/fs/udf/udf_vnops.c
cvs rdiff -r1.21 -r1.22 src/sys/fs/union/union_subr.c
cvs rdiff -r1.40 -r1.41 src/sys/fs/union/union_vfsops.c
cvs rdiff -r1.17 -r1.18 src/sys/fs/union/union_vnops.c
cvs rdiff -r1.66 -r1.67 src/sys/kern/vfs_cache.c
cvs rdiff -r1.33 -r1.34 src/sys/kern/vfs_getcwd.c
cvs rdiff -r1.72 -r1.73 src/sys/kern/vfs_lookup.c
cvs rdiff -r1.279 -r1.280 src/sys/kern/vfs_syscalls.c
cvs rdiff -r1.41 -r1.42 src/sys/miscfs/deadfs/dead_vnops.c
cvs rdiff -r1.62 -r1.63 src/sys/miscfs/fdesc/fdesc_vfsops.c
cvs rdiff -r1.94 -r1.95 src/sys/miscfs/fdesc/fdesc_vnops.c
cvs rdiff -r1.20 -r1.21 src/sys/miscfs/genfs/layer_subr.c
cvs rdiff -r1.28 -r1.29 src/sys/miscfs/genfs/layer_vnops.c
cvs rdiff -r1.74 -r1.75 src/sys/miscfs/kernfs/kernfs_vfsops.c
cvs rdiff -r1.128 -r1.129 src/sys/miscfs/kernfs/kernfs_vnops.c
cvs rdiff -r1.58 -r1.59 src/sys/miscfs/portal/portal_vfsops.c
cvs rdiff -r1.68 -r1.69 src/sys/miscfs/portal/portal_vnops.c
cvs rdiff -r1.67 -r1.68 src/sys/miscfs/procfs/procfs_vfsops.c
cvs rdiff -r1.142 -r1.143 src/sys/miscfs/procfs/procfs_vnops.c
cvs rdiff -r1.42 -r1.43 src/sys/miscfs/umapfs/umap_vnops.c
cvs rdiff -r1.22 -r1.23 src/sys/nfs/nfs_export.c
cvs rdiff -r1.119 -r1.120 src/sys/nfs/nfs_serv.c
cvs rdiff -r1.177 -r1.178 src/sys/nfs/nfs_subs.c
cvs rdiff -r1.245 -r1.246 src/sys/nfs/nfs_vnops.c
cvs rdiff -r1.45 -r1.46 src/sys/sys/namei.h
cvs rdiff -r1.46 -r1.47 src/sys/ufs/ext2fs/ext2fs_lookup.c
cvs rdiff -r1.69 -r1.70 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -r1.193 -r1.194 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -r1.10 -r1.11 src/sys/ufs/ufs/ufs_extattr.c
cvs rdiff -r1.80 -r1.81 src/sys/ufs/ufs/ufs_lookup.c
cvs rdiff -r1.143 -r1.144 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -r1.77 -r1.78 src/sys/uvm/uvm_vnode.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.