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
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 
    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 
  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

More information about the Commits mailing list