Module Name: src Committed By: riastradh Date: Fri May 26 14:21:02 UTC 2017
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c src/sys/coda: coda_vnops.c src/sys/fs/adosfs: advnops.c src/sys/fs/cd9660: cd9660_node.c src/sys/fs/efs: efs_vnops.c src/sys/fs/filecorefs: filecore_node.c src/sys/fs/hfs: hfs_vnops.c src/sys/fs/msdosfs: msdosfs_denode.c src/sys/fs/nilfs: nilfs_vnops.c src/sys/fs/ntfs: ntfs_vnops.c src/sys/fs/ptyfs: ptyfs_vnops.c src/sys/fs/puffs: puffs_vnops.c src/sys/fs/smbfs: smbfs_node.c src/sys/fs/sysvbfs: sysvbfs_vnops.c src/sys/fs/tmpfs: tmpfs_vnops.c src/sys/fs/udf: udf_vnops.c src/sys/fs/union: union_vnops.c src/sys/fs/unionfs: unionfs_vnops.c src/sys/fs/v7fs: v7fs_vnops.c src/sys/kern: vfs_vnode.c vnode_if.src src/sys/miscfs/fdesc: fdesc_vnops.c src/sys/miscfs/genfs: layer_vnops.c src/sys/miscfs/kernfs: kernfs_vnops.c src/sys/miscfs/procfs: procfs_vnops.c src/sys/miscfs/specfs: spec_vnops.c src/sys/nfs: nfs_node.c src/sys/rump/librump/rumpvfs: rumpfs.c src/sys/ufs/chfs: chfs_vnops.c src/sys/ufs/ext2fs: ext2fs_vnops.c src/sys/ufs/ffs: ffs_vnops.c src/sys/ufs/lfs: lfs_vnops.c src/sys/ufs/mfs: mfs_vnops.c Log Message: Make VOP_RECLAIM do the last unlock of the vnode. VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any final operations that must be done on the vnode, such as ffs_update, requiring exclusive access to it, we can now kassert that the vnode is locked in those operations. We can't just have the caller release the last lock because some file systems don't use genfs_lock, and require the vnode to remain valid for VOP_UNLOCK to work, notably unionfs. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c cvs rdiff -u -r1.105 -r1.106 src/sys/coda/coda_vnops.c cvs rdiff -u -r1.49 -r1.50 src/sys/fs/adosfs/advnops.c cvs rdiff -u -r1.36 -r1.37 src/sys/fs/cd9660/cd9660_node.c cvs rdiff -u -r1.37 -r1.38 src/sys/fs/efs/efs_vnops.c cvs rdiff -u -r1.29 -r1.30 src/sys/fs/filecorefs/filecore_node.c cvs rdiff -u -r1.33 -r1.34 src/sys/fs/hfs/hfs_vnops.c cvs rdiff -u -r1.54 -r1.55 src/sys/fs/msdosfs/msdosfs_denode.c cvs rdiff -u -r1.35 -r1.36 src/sys/fs/nilfs/nilfs_vnops.c cvs rdiff -u -r1.61 -r1.62 src/sys/fs/ntfs/ntfs_vnops.c cvs rdiff -u -r1.53 -r1.54 src/sys/fs/ptyfs/ptyfs_vnops.c cvs rdiff -u -r1.210 -r1.211 src/sys/fs/puffs/puffs_vnops.c cvs rdiff -u -r1.55 -r1.56 src/sys/fs/smbfs/smbfs_node.c cvs rdiff -u -r1.62 -r1.63 src/sys/fs/sysvbfs/sysvbfs_vnops.c cvs rdiff -u -r1.132 -r1.133 src/sys/fs/tmpfs/tmpfs_vnops.c cvs rdiff -u -r1.104 -r1.105 src/sys/fs/udf/udf_vnops.c cvs rdiff -u -r1.69 -r1.70 src/sys/fs/union/union_vnops.c cvs rdiff -u -r1.11 -r1.12 src/sys/fs/unionfs/unionfs_vnops.c cvs rdiff -u -r1.25 -r1.26 src/sys/fs/v7fs/v7fs_vnops.c cvs rdiff -u -r1.88 -r1.89 src/sys/kern/vfs_vnode.c cvs rdiff -u -r1.74 -r1.75 src/sys/kern/vnode_if.src cvs rdiff -u -r1.128 -r1.129 src/sys/miscfs/fdesc/fdesc_vnops.c cvs rdiff -u -r1.65 -r1.66 src/sys/miscfs/genfs/layer_vnops.c cvs rdiff -u -r1.157 -r1.158 src/sys/miscfs/kernfs/kernfs_vnops.c cvs rdiff -u -r1.196 -r1.197 src/sys/miscfs/procfs/procfs_vnops.c cvs rdiff -u -r1.171 -r1.172 src/sys/miscfs/specfs/spec_vnops.c cvs rdiff -u -r1.120 -r1.121 src/sys/nfs/nfs_node.c cvs rdiff -u -r1.148 -r1.149 src/sys/rump/librump/rumpvfs/rumpfs.c cvs rdiff -u -r1.32 -r1.33 src/sys/ufs/chfs/chfs_vnops.c cvs rdiff -u -r1.126 -r1.127 src/sys/ufs/ext2fs/ext2fs_vnops.c cvs rdiff -u -r1.128 -r1.129 src/sys/ufs/ffs/ffs_vnops.c cvs rdiff -u -r1.314 -r1.315 src/sys/ufs/lfs/lfs_vnops.c cvs rdiff -u -r1.57 -r1.58 src/sys/ufs/mfs/mfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.