git: hammer2 hammer2 - Implelment variable-sized physical storage allocations

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Mar 19 10:48:13 PDT 2012


commit 866d527342ae32a12e2795bbb238165e2d97da21
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Mar 19 10:38:53 2012 -0700

    hammer2 - Implelment variable-sized physical storage allocations
    
    * The physical block which straddles the file EOF now only allocates
      the nearest power of two >= 1024 bytes sufficient to hold the file.
    
      Note that files <= 512 bytes still fit in the inode embedded data area.
    
      This results in much, much better packing of small files.
    
    * Remove most restrictions on logical/physical size mismatches.
    
      This also opens the door in the future for variable-sized indirect blocks.
    
    * The strategy read code is now a lot smarter on optimizing to a direct-read.
      (direct writes are still not supported yet).  The code should also be
      more readable now.
    
    * Rewrite the file truncation/extension code to use the new
      hammer2_chain_resize() function.
    
    * Correct several bugs in the buffer offset calculations when pulling 16K
      logical buffers out of 64K physical buffers.

Summary of changes:
 sys/vfs/hammer2/TODO            |    6 +
 sys/vfs/hammer2/donew           |    5 +
 sys/vfs/hammer2/dossd           |   11 ++
 sys/vfs/hammer2/hammer2.h       |    5 +-
 sys/vfs/hammer2/hammer2_chain.c |  168 ++++++++++++++++++++++-
 sys/vfs/hammer2/hammer2_disk.h  |   10 +-
 sys/vfs/hammer2/hammer2_inode.c |   13 ++
 sys/vfs/hammer2/hammer2_vnops.c |  278 +++++++++++++++++++++++++--------------
 8 files changed, 386 insertions(+), 110 deletions(-)
 create mode 100755 sys/vfs/hammer2/donew
 create mode 100755 sys/vfs/hammer2/dossd

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/866d527342ae32a12e2795bbb238165e2d97da21


-- 
DragonFly BSD source repository





More information about the Commits mailing list