[Ocfs2-tools-commits] branch, stack-user, created. ocfs2-tools-1.2.6-135-g3745208

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon Mar 17 13:18:24 PDT 2008


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Tools to manage the ocfs2 filesystem.".

The branch, stack-user has been created
        at  3745208c99f64829c0496aacfaa4eb5fa4e55d64 (commit)

- Log -----------------------------------------------------------------
commit 3745208c99f64829c0496aacfaa4eb5fa4e55d64
Author: Joel Becker <joel.becker at oracle.com>
Date:   Wed Mar 12 13:41:14 2008 -0700

    ocfs2_controld: Integrate ckpt with the daemon
    
    The daemon code should now install and fill its checkpoint objects.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit f63bdafde9e51ff727f6f7541a989d6a7276c93a
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Mar 11 12:45:37 2008 -0700

    ocfs2_controld: read and write ckpt sections
    
    Data on checkpoints is stored in sections.  The access to section data
    will be via simple accessor functions.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 3bd0ad250964e8ffb09ea4df2e39a70d9e1542a8
Author: Joel Becker <joel.becker at oracle.com>
Date:   Mon Mar 10 17:32:40 2008 -0700

    ocfs2_controld: Open and close checkpoints
    
    Open and close checkpoint handles.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 00aeb9785f013f89a9828df91fa71e6d91d2e505
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Mar 8 02:51:47 2008 -0800

    ocfs2_controld: Add the startup/shutdown code for ckpt
    
    ocfs2_controld is going to use the AIS CKPT service for daemon state
    information.  This just opens and closes the connection to the service.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit c14e2a048f9652981a4856d27e99d323f4131938
Author: Joel Becker <joel.becker at oracle.com>
Date:   Fri Feb 22 16:12:09 2008 -0800

    ocfs2_controld: Pass the locking version to ocfs2_control_open()
    
    Opening the ocfs2_control device requires telling the kernel what
    version of the locking protocol to use.  Move that work into
    the control daemon.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit f84146c414a86a39fcd8efae78ace5ff54e1551a
Author: Joel Becker <joel.becker at oracle.com>
Date:   Fri Feb 22 15:37:43 2008 -0800

    libo2cb: Teach the control device handshake about the protocol version
    
    The handshake with the ocfs2_control device now requires the filesystem
    protocol version to be passed.  This version is negotiated by the control
    daemon, and is based on /sys/fs/ocfs2/max_locking_protocol.
    
    For this first pass, just write back what max_locking_protocol contains.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit ac46e5a810dd02611c1b70808c116823b2396740
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:59:26 2008 -0800

    o2cb: Provide the o2cb_control_node_down() API.
    
    The o2cb_control_node_down() function passes node death through to the
    ocfs2_control device.  Thus, ocfs2_controld can now tell the kernel to
    start recovery.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit ab3d302afefe6ac9f115c7fe0d181c4080c78027
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:46 2008 -0800

    libo2cb: Add the API to open and close the ocfs2_control device.
    
    This API is used by ocfs2_controld to connect to the filesystem module.
    It performs a handshake with the kernel driver, after which filesystems
    can be mounted.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 703f94c58d9ec35e00e27d7b2c69312bf525d975
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Mar 8 02:48:51 2008 -0800

    ocfs2_control: Add udev configuration for the ocfs2_control device.
    
    A simple udev configuration for the /dev/misc/ocfs2_control device.
    This creates the device at module load time.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 106c27669ce32fbacbc35e8444b2a4e90b323187
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:47 2008 -0800

    mount.ocfs2: Pass the cluster_stack= option for user stacks.
    
    If the filesystem is tagged for a userspace stack, pass the appropriate
    option to mount(2).
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 519350151f9290e802857a79c56b2a0e157824f7
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:47 2008 -0800

    libo2cb: Build client_proto unconditionally
    
    The client_proto code was only being built when HAVE_CMAN was true.  It
    should always be built.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 7bf5b368ea91cc0c064075c23ffeb604f225b8d0
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:47 2008 -0800

    mkfs.ocfs2: Add the cluster stack options.
    
    This code detects the running cluster stack and cluster name as well as
    accepting them from the user.  It checks for conflicts or missing
    information.  It then writes the out to the disk, setting the
    USERSPACE_STACK feature flag when appropriate.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit cb73039b46eb015851d7ae946a2045359c29dc0d
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Mar 11 17:25:07 2008 -0700

    o2cb: Introduce the cluster info struct.
    
    The filesystem now has a field on disk called ocfs2_cluster_info.  It
    contains the name of the cluster stack and the name of the cluster.  It
    is only valid if the USERSPACE_STACK incompat bit is set.  If the bit is
    not set, the filesystem expects the classic stack.
    
    libocfs2 gains a routine to read this field.  It fills in a struct
    o2cb_cluster_desc.  If the classic stack is in use, the structure is
    filled in with NULLs.
    
    Likewise, o2cb_*_group_*() take the o2cb_cluster_desc structure rather
    than a cluster name.  This allows them to check the stack expected by
    the filesystem with the stack actually in use.  If a userspace stack,
    the name will be passed over the wire to the control daemon.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 8478b769a9e89aa5e8d0a42449dcac766d10390c
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:48 2008 -0800

    o2cb: o2cb_list_clusters() for user stacks.
    
    Add list_clusters functionality to the user stack in libo2cb.  Use it to
    back join/leave in the mount path.  This is, of course, temporary to a
    better API for querying the cluster info.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 50193bddc6d582657e3e689925f6e5c0863f3884
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:54:01 2008 -0800

    o2cb client: Add the query messages
    
    The "LISTCLUSTERS", "LISTMOUNTS", and "LISTFS" messages are added to
    client_proto.c.  The receive_list() helper is added to client_proto.c as
    well, and test_client is taught to send LISTCLUSTERS and read the
    response.  ocfs2_controld.cman also learns how to respond to
    LISTCLUSTERS.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit b86e844967d14e527f5f20556c37a07633ab46e5
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:48 2008 -0800

    libo2cb: Provide the controld group operations.
    
    For userspace cluster stacks, the user group operations will connect to
    a running control daemon and ask for joins.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit bfd4dc8efe8b82fa072c7420414b32bf7a9d9384
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:49 2008 -0800

    ocfs2_controld.cman: Validate current stack
    
    The daemon should only run if the current stack is "cman"
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 152014d4c4c2628a9d2419d4230cddc972edb9da
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:49 2008 -0800

    ocfs2_controld.cman: Prefix group names with 'ocfs2:'
    
    To distinguish our CPG groups from other processes, prefix all groups
    with 'ocfs2:'.  The control daemon group is now "ocfs2:controld", and
    filesystem groups will be "ocfs2:<uuid>"
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit f05ec8235653bab8affdaf1b1c291353933dcd29
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:49 2008 -0800

    ocfs2_controld.cman: Provide a callback when the daemon group is joined
    
    Rather than listen for clients at the very beginning (when the cluster
    may not be ready), let's start listening after the daemon has joined the
    "ocfs2" cluster group.  This is accomplished via a callback passed to
    setup_cpg().
    
    This also prepares us to negotiate with other daemons at startup.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 810f9bb3cae8cbf782f63cfe6ed5291b2fd66f2b
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:49 2008 -0800

    ocfs2_controld: Leave groups
    
    The daemon now handles leaving a group.  When a umount request is
    recieved, it will leave the matching group.  When we are notified that
    we've left, we'll tell the mount code.
    
    In turn, the mount code handles normal and abnormal leaves.  In the
    abnormal case, it will drop all nodes and then drop the group.
    
    This allows us to reinstate bail_on_mounts() for the unplanned daemon
    exit.  It just relies on simulating abnormal leaves.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 5472cf4921c8b12df79a891d99a016bf555eb8bb
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:49 2008 -0800

    ocfs2_controld: Join a group on filesystem mount.
    
    When a filesystem mounts for the first time, join a group in CPG.  This
    encompasses all the join code required, but does not handle leave yet.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 605d0c72b06f694c86f81caf51477d7d9f6eb660
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:49 2008 -0800

    ocfs2_controld: some group handling
    
    This is a point-in-time commit, and probably a candidate for git-fold.
    Group initialization and joining are abstracted to make ready for mount
    groups.  The node down code is skeletonized.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 63c1a20ffaa6ebf7040ce1a6a652c48b5bf1f844
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:49:53 2008 -0800

    ocfs2_controld: Add mountgroups and mount client communication.
    
    The daemon now accepts the MOUNT, MRESULT, and UNMOUNT messages as
    specified in the protocol.  It builds mountgroup structures as well as
    the associated mountpoints.  It properly handles secondary mountpoints
    as well as all but one client death scenario.
    
    Currently it fakes joining and leaving groups.  That's the next step.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 81165d642e39ba91e4585d2b856cdacfc6dedd98
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:50 2008 -0800

    ocfs2_controld: Smarter client allocation code.
    
    Steal more bits from other daemons.  Basically, make the client array
    allocation easier to read and able to handle allocation failure.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 40a41a4ac0c80e6df5bb5c771faa6cb8aaaed341
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:47:19 2008 -0800

    ocfs2_controld: add CPG skeleton
    
    Add a skeleton cpg interface to ocfs2_controld.  It connects to the CPG
    service and joins a group for the daemon itself.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 4693cffb2533204a33b94ffe757290ebbf4e9444
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:48:20 2008 -0800

    ocfs2_controld: Steal a better client loop
    
    groupd has a smarter client_add() implementation.  It uses callbacks to
    match client fd to worker function.  Let's use it.
    
    While we're at it, rename member_cman.  It was just too long.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 225f3b5e810022866e529668ea67e7cdc6709e2a
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:46:04 2008 -0800

    ocfs2_controld: Add cman membership code.
    
    Bring in the member_cman.c file.  It just connects to cman and loads the
    node information.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 805e6596708a7f3928dd4bc92957aa980e8f0712
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:45:20 2008 -0800

    ocfs2_controld: Add the main loop file.
    
    I'm bringing in pieces of the original ocfs2_controld attempt one by
    one.  Much of the core code is pretty well fleshed out.  Once I've
    brought in the pieces I can use, I'll start adding the new
    functionality.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 89966ebbe8e6ee1611f147a554d4ac1838adf5b4
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:43:44 2008 -0800

    ocfs2_controld: Add the test client
    
    The test_client allows us to poke ocfs2_controld without trying to
    actually run mount(1).
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 246742b068170f2b1a6a42917e59d1901fae1f1f
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:37:32 2008 -0800

    libo2cb: Add the client protocol files.
    
    The control daemon protocol is added to libo2cb.  It is only built when
    libcman is detected.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 4f67c6da604e5ef3dbbfa9920786049b1117ecee
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:51 2008 -0800

    configure: Check for libcman and cpg.
    
    Check for the cman and cpg libraries.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 5e25da38fad865267e858aa5d6bad230695151ca
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:51 2008 -0800

    o2cb.init: Bring a userspace cluster online.
    
    When available, the ocfs2_controld.<stackname> daemon will be started.
    The control daemon is specific to <stackname>.  If
    ocfs2_controld.<stackname> does not exist, that stack is unsupported.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit eae89dc29ab8f22ae2e06fbd2b14b3006a9a4685
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:52 2008 -0800

    o2cb.init: Manage stack plugins
    
    The o2cb.init script now loads and unloads the appropriate stack
    plugins.  It knows not to complain when older drivers are in use.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 86f493393f363e079f5c61adc2ec77806965005b
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:52 2008 -0800

    libo2cb: Create operation structures for the cluster stack.
    
    This allows each stack to handle
    begin_group_join/complete_group_join/group_leave as appropriate.
    Currently only the classic stack is implemented.
    
    o2cb_init() will now fail if there is a problem reading
    /sys/fs/ocfs2/cluster_stack.  If the file does not exist we default to
    the classic stack for compatibility with older drivers.
    
    Move the "o2cb" stack operations to static functions, adding them to the
    "classic_stack" operation structure.
    
    Finally, have the external APIs merely fill in the default cluster name
    and call the stack operations.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 4613b449c7ee1107621af86bdd321cddd8dcc68a
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:52 2008 -0800

    o2cb.init: Store the configured stack name.
    
    Allow "/etc/init.d/o2cb configure" to ask the name of the cluster stack
    to use.  During startup, store that name in sysfs.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit be66bd7e3fdad50e5a3a2f2ce42411b4848c2d07
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Mar 11 17:18:55 2008 -0700

    o2cb: change the heartbeat API
    
    - o2cb_[start|stop]_heartbeat_region() have been replaced by
      o2cb_begin_group_join(), o2cb_complete_group_join(), and
      o2cb_group_leave().  These functions now take a service name to describe
      who is accessing the region.  The service is usually the mountpoint,
      but tools will use their program name.
    - Failed mounts pass an error to o2cb_complete_group_join(), which will
      handle stopping any started region.  Thus, failed mounts should not
      call o2cb_group_leave() like they used to call
      o2cb_stop_heartbeat_region().
    - mount.ocfs2 called ocfs2_start_heartbeat().  Change it to call
      o2cb_begin_group_join() and o2cb_complete_group_join().
    - umount.ocfs2 is changed to call o2cb_group_leave() after umount(2).
    - All of the other tools never called ocfs2_hb_ctl.  They call
      ocfs2_initalize_dlm() and ocfs2_shutdown_dlm().  These functions have
      been changed to call the new o2cb_group_* API.  This works for all
      tools.
    - ocfs2_hb_ctl is now only useful for querying the state and
      starting/stopping regions by hand.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 88e04904c8a0037c923a1086ef472d789951a622
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Mar 11 17:17:44 2008 -0700

    umount.ocfs2: Add umount.ocfs2 to pair mount.ocfs2
    
    Rather than use a userspace_helper callout, use the umount.<fstype>
    functionality available in mount(8) since 2.12j.
    
    - Remove OCFS2_FSTYPE and promote OCFS2_FS_NAME to the o2cb header
    - Remove ocfs2_hb_ctl calls from mount.ocfs2.  It now calls
      ocfs2_start_heartbeat() directly.
    - Add umount.ocfs2 to call ocfs2_stop_heartbeat().
    
    As we will rely on umount.ocfs2 to clear heartbeat when a volume is
    unmounted, we don't want the kernel calling ocfs2_hb_ctl anymore.  Set
    /proc/sys/fs/ocfs2/nm/hb_ctl_path to "/bin/true".  This will be a noop,
    but will not break existing kernel modules.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit b0fa1ed5e4df9d9a1f1d304de980c2292a201acd
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:52 2008 -0800

    o2cb.init: Eliminate the single-path load_actions scheme.
    
    The o2cb.init script had an array of actions that are run at load time.
    Upon unload, they are run in reverse.  This worked great for a single
    backing cluster stack, but does not work well when we want to support
    multiple schemes.  The steps are now broken out.
    
    The mechanism for loading modules and pseudo-filesystems could not handle
    compiled-in drivers.  Because depmod works great with loading modules for
    filesystems, the code can just mount a filesystem and let depmod do the
    rest.
    
    o2cb.init is moved to o2cb.init.sh.  This allows us to propagate
    variables to the init script when the time comes.  This involves adding
    ALL_RULES to Postamble.make, something that already has happened in
    Makebo.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 25743a856218495fd38421e05dffcefebc2450b3
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:53 2008 -0800

    o2cb: Ignore files in cluster directory.
    
    The cluster directory usually only contains subdirectories.  However,
    if it were to contain an attribute file, libo2cb and o2cb.init will see it
    as a cluster name.  Teach libo2cb to only look at S_ISDIR().  Teach
    o2cb.init to only look at test -d.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

-----------------------------------------------------------------------


hooks/post-receive
-- 
Tools to manage the ocfs2 filesystem.



More information about the Ocfs2-tools-commits mailing list