git: hammer2 - freemap part 1 - initial block allocator and media support

Matthew Dillon dillon at crater.dragonflybsd.org
Fri May 17 14:55:25 PDT 2013


commit 1a7cfe5ae3c897f704a358fd3e556a55e430dcb1
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri May 17 14:48:59 2013 -0700

    hammer2 - freemap part 1 - initial block allocator and media support
    
    * Freemap document (FREEMAP in this directory)
    
    * temporarily turn off clustering until the freemap gets that capability
      (mixed buffer sizes can be adjacent atm).
    
    * Remove the freemap_blockref[1] from the volume header and replace it
      with a blockset array (8 blockrefs).
    
    * Implement dynamic creation of freemap nodes and leafs on an as-needed
      basis using the normal indirect block creation code.  Most of the standard
      file handling code is reused for the freemap support.
    
    * Major cleanup of hammer2_chain.c, the duplication code, the indirect
      block creation and handling, and the chain->flag handling.

Summary of changes:
 sys/vfs/hammer2/DESIGN            |   68 ++-
 sys/vfs/hammer2/FREEMAP           |  141 +++++
 sys/vfs/hammer2/TODO              |   10 +
 sys/vfs/hammer2/hammer2.h         |   49 +-
 sys/vfs/hammer2/hammer2_chain.c   | 1177 +++++++++++++++++++++----------------
 sys/vfs/hammer2/hammer2_disk.h    |  210 +++----
 sys/vfs/hammer2/hammer2_flush.c   |   59 +-
 sys/vfs/hammer2/hammer2_freemap.c |  557 +++++++++++++++++-
 sys/vfs/hammer2/hammer2_inode.c   |    5 +-
 sys/vfs/hammer2/hammer2_ioctl.c   |    6 +-
 sys/vfs/hammer2/hammer2_subr.c    |   31 +-
 sys/vfs/hammer2/hammer2_vfsops.c  |   53 +-
 sys/vfs/hammer2/hammer2_vnops.c   |   31 +-
 13 files changed, 1660 insertions(+), 737 deletions(-)
 create mode 100644 sys/vfs/hammer2/FREEMAP

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/1a7cfe5ae3c897f704a358fd3e556a55e430dcb1


-- 
DragonFly BSD source repository


More information about the Commits mailing list