DragonFly BSD
DragonFly commits List (threaded) for 2012-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: hammer2 hammer2 - Implement more of the hammer2_chain infrastructure


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 12 Feb 2012 11:27:54 -0800 (PST)

commit 5c23d7f1813b9afaf43149bbe25b4d3b8097f456
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sun Feb 12 11:23:17 2012 -0800

    hammer2 - Implement more of the hammer2_chain infrastructure
    
    * Allocate system structures through their chain type.
    
    * Implement core lookup and iteration code
    
    * Non-terminal media objects which are smaller than HAMMER2_PBUFSIZE (64K)
      cannot hold onto their buffer cache buffer without deadlocking against
      or interfering with the chain.
    
      This is just inodes for now.  An embedded copy of the media data is
      retained (I had removed it before thinking I could just map the bp but
      it doesn't work, so it goes back in).
    
    * Data references for other media objects can be temporary and allocated.
      The chain locking and unlocking code will instantiate and destroy the
      allocated copy as needed.
    
      This also enforces the chain locking requirement for media data access.
    
    * hammer2_chain_create() skeleton added (cannot create indirect blocks yet).
    
    * hammer2_chain_delete() does nothing atm.
    
    * tested with mount/umount.

Summary of changes:
 sys/vfs/hammer2/Makefile          |    2 +-
 sys/vfs/hammer2/hammer2.h         |  128 ++++--
 sys/vfs/hammer2/hammer2_chain.c   |  861 ++++++++++++++++++++++++++++---------
 sys/vfs/hammer2/hammer2_disk.h    |   13 +-
 sys/vfs/hammer2/hammer2_freemap.c |  116 +++++
 sys/vfs/hammer2/hammer2_inode.c   |   16 +-
 sys/vfs/hammer2/hammer2_subr.c    |   22 +-
 sys/vfs/hammer2/hammer2_vfsops.c  |   52 ++-
 8 files changed, 930 insertions(+), 280 deletions(-)
 create mode 100644 sys/vfs/hammer2/hammer2_freemap.c

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5c23d7f1813b9afaf43149bbe25b4d3b8097f456


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]