Module Name: src Committed By: dholland Date: Sun Jan 2 05:09:33 UTC 2011
Modified Files: src/sys/fs/msdosfs: msdosfs_vnops.c src/sys/fs/udf: udf_vnops.c src/sys/fs/union: union_subr.c union_vnops.c src/sys/fs/unionfs: unionfs_subr.c src/sys/kern: vfs_lookup.c vfs_syscalls.c src/sys/nfs: nfs_serv.c src/sys/sys: namei.src src/sys/ufs/ext2fs: ext2fs_vnops.c src/sys/ufs/lfs: lfs_vnops.c src/sys/ufs/ufs: ufs_vnops.c ufs_wapbl.c Log Message: Remove the special refcount behavior (adding an extra reference to the parent dir) associated with SAVESTART in relookup(). Check all call sites to make sure that SAVESTART wasn't set while calling relookup(); if it was, adjust the refcount behavior. Remove related references to SAVESTART. The only code that was reaching the extra ref was msdosfs_rename, where the refcount behavior was already fairly broken and/or gross; repair it. Add a dummy 4th argument to relookup to make sure code that hasn't been inspected won't compile. (This will go away next time the relookup semantics change, which they will.) To generate a diff of this commit: cvs rdiff -u -r1.70 -r1.71 src/sys/fs/msdosfs/msdosfs_vnops.c cvs rdiff -u -r1.61 -r1.62 src/sys/fs/udf/udf_vnops.c cvs rdiff -u -r1.41 -r1.42 src/sys/fs/union/union_subr.c cvs rdiff -u -r1.38 -r1.39 src/sys/fs/union/union_vnops.c cvs rdiff -u -r1.11 -r1.12 src/sys/fs/unionfs/unionfs_subr.c cvs rdiff -u -r1.129 -r1.130 src/sys/kern/vfs_lookup.c cvs rdiff -u -r1.411 -r1.412 src/sys/kern/vfs_syscalls.c cvs rdiff -u -r1.153 -r1.154 src/sys/nfs/nfs_serv.c cvs rdiff -u -r1.19 -r1.20 src/sys/sys/namei.src cvs rdiff -u -r1.96 -r1.97 src/sys/ufs/ext2fs/ext2fs_vnops.c cvs rdiff -u -r1.232 -r1.233 src/sys/ufs/lfs/lfs_vnops.c cvs rdiff -u -r1.185 -r1.186 src/sys/ufs/ufs/ufs_vnops.c cvs rdiff -u -r1.11 -r1.12 src/sys/ufs/ufs/ufs_wapbl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.