cvs commit: src/sys/kern vfs_subr.c src/sys/sys vnode.h src/sys/vfs/gnu/ext2fs ext2_inode.c ext2_vnops.c src/sys/vfs/isofs/cd9660 cd9660_lookup.c cd9660_vfsops.c cd9660_vnops.c src/sys/vfs/msdosfs msdosfs_denode.c ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Apr 6 23:41:30 PDT 2006
dillon 2006/04/06 23:38:33 PDT
DragonFly src repository
Modified files:
sys/kern vfs_subr.c
sys/sys vnode.h
sys/vfs/gnu/ext2fs ext2_inode.c ext2_vnops.c
sys/vfs/isofs/cd9660 cd9660_lookup.c cd9660_vfsops.c
cd9660_vnops.c
sys/vfs/msdosfs msdosfs_denode.c msdosfs_vnops.c
sys/vfs/nfs nfs_serv.c nfs_subs.c nfs_vfsops.c
nfs_vnops.c nfsmount.h
sys/vfs/ntfs ntfs_vnops.c
sys/vfs/specfs spec_vnops.c
sys/vfs/ufs ffs_inode.c ufs_vnops.c
Log:
Due to continuing issues with VOP_READ/VOP_WRITE ops being called without
a VOP_OPEN, particularly by NFS, redo the way VM objects are associated
with vnodes.
* The size of the object is now passed to vinitvmio(). vinitvmio() no
longer calls VOP_GETATTR().
* Instead of trying to call vinitvmio() conditionally in various places,
we now call it unconditionally when a vnode is instantiated if
the filesystem at any time in the future intends to use the buffer
cache to access that vnode's dataspace.
* Specfs 'disk' devices are an exception. Since we cannot safely do I/O
on such vnodes if they have not been VOP_OPEN()'ed anyhow, the VM objects
for those vnodes are still only associated on open.
The performance impact is limited to the case where large numbers of vnodes
are being created and destroyed. This case only occurs when a large
directory topology (number of files > kernel's vnode cache) is traversed
and all related inodes are cached by the system. Being a pure-cpu case
the slight loss of performance due to the VM object allocations is
not really a big dael.
Revision Changes Path
1.75 +5 -23 src/sys/kern/vfs_subr.c
1.47 +1 -1 src/sys/sys/vnode.h
1.15 +0 -8 src/sys/vfs/gnu/ext2fs/ext2_inode.c
1.29 +18 -17 src/sys/vfs/gnu/ext2fs/ext2_vnops.c
1.21 +0 -5 src/sys/vfs/isofs/cd9660/cd9660_lookup.c
1.33 +4 -0 src/sys/vfs/isofs/cd9660/cd9660_vfsops.c
1.24 +0 -7 src/sys/vfs/isofs/cd9660/cd9660_vnops.c
1.23 +1 -0 src/sys/vfs/msdosfs/msdosfs_denode.c
1.34 +0 -4 src/sys/vfs/msdosfs/msdosfs_vnops.c
1.32 +0 -2 src/sys/vfs/nfs/nfs_serv.c
1.37 +21 -4 src/sys/vfs/nfs/nfs_subs.c
1.38 +2 -2 src/sys/vfs/nfs/nfs_vfsops.c
1.55 +0 -10 src/sys/vfs/nfs/nfs_vnops.c
1.8 +1 -0 src/sys/vfs/nfs/nfsmount.h
1.29 +0 -18 src/sys/vfs/ntfs/ntfs_vnops.c
1.35 +3 -1 src/sys/vfs/specfs/spec_vnops.c
1.19 +0 -7 src/sys/vfs/ufs/ffs_inode.c
1.42 +18 -12 src/sys/vfs/ufs/ufs_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_subr.c.diff?r1=1.74&r2=1.75&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.46&r2=1.47&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_inode.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vnops.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_lookup.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vfsops.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vnops.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_denode.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_vnops.c.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_serv.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_subs.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vfsops.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vnops.c.diff?r1=1.54&r2=1.55&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfsmount.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vnops.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/specfs/spec_vnops.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_inode.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_vnops.c.diff?r1=1.41&r2=1.42&f=u
More information about the Commits
mailing list