DragonFly commits List (threaded) for 2012-06
git: hammer2 hammer2 - Wire-up the kernel<->userland messaging pipe
Author: Matthew Dillon <firstname.lastname@example.org>
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
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