Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys

Module Name:    src
Committed By:   ad
Date:           Sat Apr  4 20:49:31 UTC 2020

Modified Files:
        src/sys/fs/cd9660: cd9660_lookup.c cd9660_vfsops.c
        src/sys/fs/msdosfs: msdosfs_lookup.c msdosfs_vfsops.c
        src/sys/fs/tmpfs: tmpfs_subr.c tmpfs_vfsops.c
        src/sys/kern: vfs_cache.c vfs_getcwd.c vfs_lookup.c vfs_syscalls.c
        src/sys/miscfs/genfs: layer_vnops.c
        src/sys/miscfs/nullfs: null_vfsops.c
        src/sys/miscfs/procfs: procfs_vfsops.c
        src/sys/sys: fstypes.h namei.src
        src/sys/ufs/chfs: chfs_vnops.c
        src/sys/ufs/ext2fs: ext2fs_lookup.c ext2fs_vfsops.c
        src/sys/ufs/ffs: ffs_vfsops.c
        src/sys/ufs/lfs: lfs_vfsops.c ulfs_lookup.c
        src/sys/ufs/ufs: ufs_lookup.c ufs_vnops.c

Log Message:
Merge the remaining changes from the ad-namecache branch, affecting namei()
and getcwd():

- push vnode locking back as far as possible.
- do most lookups directly in the namecache, avoiding vnode locks & refs.
- don't block new refs to vnodes across VOP_INACTIVE().
- get shared locks for VOP_LOOKUP() if the file system supports it.
- correct lock types for VOP_ACCESS() / VOP_GETATTR() in a few places.

Possible future enhancements:

- make the lookups lockless.
- support dotdot lookups by being lockless and inferring absence of chroot.
- maybe make it work for layered file systems.
- avoid vnode references at the root & cwd.

To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/fs/cd9660/cd9660_lookup.c
cvs rdiff -u -r1.95 -r1.96 src/sys/fs/cd9660/cd9660_vfsops.c
cvs rdiff -u -r1.35 -r1.36 src/sys/fs/msdosfs/msdosfs_lookup.c
cvs rdiff -u -r1.133 -r1.134 src/sys/fs/msdosfs/msdosfs_vfsops.c
cvs rdiff -u -r1.107 -r1.108 src/sys/fs/tmpfs/tmpfs_subr.c
cvs rdiff -u -r1.76 -r1.77 src/sys/fs/tmpfs/tmpfs_vfsops.c
cvs rdiff -u -r1.136 -r1.137 src/sys/kern/vfs_cache.c
cvs rdiff -u -r1.56 -r1.57 src/sys/kern/vfs_getcwd.c
cvs rdiff -u -r1.214 -r1.215 src/sys/kern/vfs_lookup.c
cvs rdiff -u -r1.544 -r1.545 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.116 -r1.117 src/sys/kern/vfs_vnode.c
cvs rdiff -u -r1.68 -r1.69 src/sys/miscfs/genfs/layer_vnops.c
cvs rdiff -u -r1.97 -r1.98 src/sys/miscfs/nullfs/null_vfsops.c
cvs rdiff -u -r1.103 -r1.104 src/sys/miscfs/procfs/procfs_vfsops.c
cvs rdiff -u -r1.37 -r1.38 src/sys/sys/fstypes.h
cvs rdiff -u -r1.52 -r1.53 src/sys/sys/namei.src
cvs rdiff -u -r1.36 -r1.37 src/sys/ufs/chfs/chfs_vnops.c
cvs rdiff -u -r1.89 -r1.90 src/sys/ufs/ext2fs/ext2fs_lookup.c
cvs rdiff -u -r1.217 -r1.218 src/sys/ufs/ext2fs/ext2fs_vfsops.c
cvs rdiff -u -r1.366 -r1.367 src/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -u -r1.377 -r1.378 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -u -r1.42 -r1.43 src/sys/ufs/lfs/ulfs_lookup.c
cvs rdiff -u -r1.151 -r1.152 src/sys/ufs/ufs/ufs_lookup.c
cvs rdiff -u -r1.249 -r1.250 src/sys/ufs/ufs/ufs_vnops.c

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

Home | Main Index | Thread Index | Old Index