git: hammer2 hammer2 - Wire-up the kernel<->userland messaging pipe
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Jun 8 22:11:53 PDT 2012
commit bfc3a7b1a6cc1c380d88b1a095076132618294d7
Author: Matthew Dillon <dillon at apollo.backplane.com>
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
messages.
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(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bfc3a7b1a6cc1c380d88b1a095076132618294d7
--
DragonFly BSD source repository
More information about the Commits
mailing list