git: kernel - VM PAGER part 2/2 - Expand vinitvmio() and vnode_pager_alloc()

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Feb 14 08:35:14 PST 2010


commit b0d18f7d0ae8bb16f0ffe429dc925d2183579b45
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Feb 14 08:29:10 2010 -0800

    kernel - VM PAGER part 2/2 - Expand vinitvmio() and vnode_pager_alloc()
    
    * vinitvmio() is responsible for assigning the initial VM object size based
      on the file size.  Adjust vinitvmio() to conform to the new nvextendbuf()
      and nvtruncbuf() API.
    
    * vinitvmio() has been given two additional parameters, blksize and boff,
      to allow it to determine how much larger the VM object must be relative
      to the byte-granular file size passed to it.
    
    * Remove vm_page_alloc() and remove the pgo_alloc vector from struct
      pagerops.  Convert all the VM pager allocation procedures into global
      procedures which are called directly.  Trying to feed everything through
      a single function was a joke when all the callers knew precisely what
      kind of VM object they were creating anyway.
    
      Add the extra arguments to vnode_pager_alloc() which vinitvmio() needs
      to pass in.

Summary of changes:
 sys/kern/vfs_subr.c                  |    4 +-
 sys/sys/vnode.h                      |    2 +-
 sys/vfs/devfs/devfs_vnops.c          |    2 +-
 sys/vfs/gnu/ext2fs/ext2_vnops.c      |   11 ++++---
 sys/vfs/hammer/hammer_inode.c        |    7 +++-
 sys/vfs/hammer/hammer_vnops.c        |    8 +++++-
 sys/vfs/isofs/cd9660/cd9660_vfsops.c |    2 +-
 sys/vfs/msdosfs/msdosfs_denode.c     |    2 +-
 sys/vfs/nfs/nfs_subs.c               |    7 ++++-
 sys/vfs/ntfs/ntfs_subr.c             |    2 +-
 sys/vfs/ntfs/ntfs_vfsops.c           |    2 +-
 sys/vfs/tmpfs/tmpfs_subr.c           |    2 +-
 sys/vfs/ufs/ufs_vnops.c              |   18 ++++++++----
 sys/vfs/userfs/userfs_inode.c        |    2 +-
 sys/vm/vm_pager.h                    |    2 +-
 sys/vm/vnode_pager.c                 |   49 +++++++++++++++++++++++++++-------
 16 files changed, 86 insertions(+), 36 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b0d18f7d0ae8bb16f0ffe429dc925d2183579b45


-- 
DragonFly BSD source repository





More information about the Commits mailing list