git: hammer2 hammer2 - Wire-up the kernel<->userland messaging pipe

Matthew Dillon dillon at
Fri Jun 8 22:11:53 PDT 2012

commit bfc3a7b1a6cc1c380d88b1a095076132618294d7
Author: Matthew Dillon <dillon at>
Date:   Fri Jun 8 22:03:48 2012 -0700

    hammer2 - Wire-up the kernel<->userland messaging pipe
    This commit starts coding up the cluster controller messaging
    infrastructure.  The cluster controller is a userland program
    typically running on the same machine (but doesn't have to be).
    The controller will be able to act in several capacities ranging
    from simple remote mounts with no local storage to mirroring setups,
    master/slave setups, and ultimately quorum setups.  Since communication
    is over a socket it will eventually be possible to implement a
    diskless hammer2 root mount without the need for a local controller.
    The VFS only talks over one socket, so in quorum or multi-connection
    setups the local cluster controller will deal with the complexity of
    managing multiple connections and the hammer2 VFS messaging interface
    remains simple.
    The hammer2 VFS will also use this interface to request cache state
    grants and, being a two-way protocol, the other end can request cache
    state invalidations or downgrades.
    * hammer2_mount now starts 'hammer2 service', connects to it via a socket,
      and passes the socket descriptor to the mount().
    * The hammer2 VFS now refs the passed-in file pointer and starts a reader
      and writer thread to manage it.  The code does not yet process actual

Summary of changes:
 sbin/mount_hammer2/mount_hammer2.c |   77 ++++++++++++++++++++++++++++-
 sys/vfs/hammer2/hammer2.h          |    9 +++-
 sys/vfs/hammer2/hammer2_mount.h    |    2 +-
 sys/vfs/hammer2/hammer2_vfsops.c   |   98 ++++++++++++++++++++++++++++++++++-
 4 files changed, 180 insertions(+), 6 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list