git: hammer2 - serialized flush work part 1

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jan 31 16:28:56 PST 2013


commit 476d2aadb736b6541fd2075a1de97f9069aa5080
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Jan 30 20:53:27 2013 -0800

    hammer2 - serialized flush work part 1
    
    This is preliminary work required to support chain structure replication
    for the purposes of recording modifications which are then separated by
    serialization points (by transaction id).  Ultimately this will allow the
    flush code to flush to an exact serialization point and in the process
    operate completely asynchronously from any further modifications being
    made on the frontend after that serialization point.
    
    * Separate hammer2_inode from hammer2_chain.
    
    * Split the locking APIs for inodes and chains into their own functions.
    
    * Move ip_data into chain->data->ipdata (kmalloc'd), instead of embedding
      it in hammer2_inode.  This allows the inode structure to disconnect from
      the chain.

Summary of changes:
 sys/vfs/hammer2/hammer2.h        |  63 ++--
 sys/vfs/hammer2/hammer2_ccms.c   |  20 ++
 sys/vfs/hammer2/hammer2_ccms.h   |   1 +
 sys/vfs/hammer2/hammer2_chain.c  | 102 +++---
 sys/vfs/hammer2/hammer2_flush.c  |   7 +
 sys/vfs/hammer2/hammer2_inode.c  | 664 ++++++++++++++++++++++++++-------------
 sys/vfs/hammer2/hammer2_ioctl.c  |  77 +++--
 sys/vfs/hammer2/hammer2_subr.c   |  95 +++---
 sys/vfs/hammer2/hammer2_vfsops.c |  71 +++--
 sys/vfs/hammer2/hammer2_vnops.c  | 361 ++++++++++++---------
 10 files changed, 885 insertions(+), 576 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/476d2aadb736b6541fd2075a1de97f9069aa5080


-- 
DragonFly BSD source repository



More information about the Commits mailing list