[Ocfs2-tools-commits] branch, stack-user, created. ocfs2-tools-1.2.6-127-g8f7b0cf

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed Mar 12 13:41:26 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  8f7b0cf00783de345fb2c0033b3717f315d43535 (commit)

- Log -----------------------------------------------------------------
commit 8f7b0cf00783de345fb2c0033b3717f315d43535
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 54e88ab403b3e6c07037f608c342c45fe25db87e
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 043b576d09126eb5234d4ab72053187a97f0c9cd
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 9db4a1ad5580c203c138f9ec254935ab04c3f814
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 e629e00a336402b1d6741b4df5ec562b1dc123e3
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Mar 8 02:48:51 2008 -0800

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

commit 1854499a555eae6544dd51358aec85b65248f47c
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 6c621e3896ec44a7b8ec7c21aa30e9971071f43c
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 49c96262edb7ff3696657913d94131800386b2db
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 7a1cfc8841be5d3e18c9e46f853f392dc974addb
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 04b78bc747864f5fcf9bd371e0e44d20acf447af
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:46 2008 -0800

    ocfs2_controld.cman: One more place with the wrong UUID length
    
    Fix what appears to be the last place we use the wrong UUID length.  We
    were using the byte length, not the ASCII length.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit c736aa169ecefca6ae77a09b4bd9813a0538b15d
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 a5492f56603d1c897be8b776d612d6b5ee57ce97
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:47 2008 -0800

    o2cb.init: Don't check configfs for all offline calls.
    
    The user stack doesn't fill configfs, so don't check for cluster
    existance in offline().  Move the check to offline_o2cb().
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit ef445e9cf7f4454044e1f7dbd275eb196feb62ac
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 51e6d202e9f4dcf6ce2e34dea7c6c1138240ea39
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 bd2edd76c19948cf3a7a5f0f47733ff0fa8b306f
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:56:17 2008 -0800

    ocfs2_controld.cman: The UMOUNT path was using the wrong UUID length.
    
    When a UMOUNT message was received, the wrong UUID length - the binary
    one - was being tested.  Test against the ascii length.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 1c464e6258b691b38ee299ea5bcd84a7b1d79159
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 f8531866ac4bd6ec94119502aec22f4454f5f169
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 55ef148d6a096f5440159d95cc9c4727c1595aa2
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:54:46 2008 -0800

    o2cb client protocol: Enable the LISTFS message
    
    The LISTFS message is implemented in the daemon and the test client.
    Also, CLUSTERNAME is renamed to LISTCLUSTERS.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

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

    o2cb client: Add the query messages
    
    The "CLUSTERNAME", "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 CLUSTERNAME and read the
    response.  ocfs2_controld.cman also learns how to respond to
    CLUSTERNAME.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

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

    o2cb.init: Typo fix
    
    "$DAEMON", not "DAEMON".  There's no such file or directory as "DAEMON".
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit e53a881519bdca840ae1639b88251bed60547f9c
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 b1c788b936a1b546cb9099548862904f367799ac
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 01bac8b017e203da6002c98ef95faace23f7082e
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 481f0e2b3a4636531a4b07fdebb5ad1376c1b01d
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 28a387768f408a01685d9e41bf38ca4ed91d9739
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 612167d3d71ebd9e924ecb2538df9ab522b67eca
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 a6c8f1e2bdbb643336cd32f375ed09967aa61474
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 0fff7908204ea1ef9cf0c4f9cd41dfef92d335c1
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 203541a8cb095c4ca828a6f056c0ecdb6eeeb4fb
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 40a85db0c87ffb781577a4b270151845ef7b8f70
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:48:20 2008 -0800

    ocfs2_controld: Rename the cman source file.
    
    The member_cman name is just too long.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit e4c7f06521cce6a8ea13ac91fea6cf767d4b21b5
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 04386d9a53563b793e2dbc94f1495273ea17bfe3
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:50 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.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 5966ca733b1aab525fe105bd0cdfd4216e15a91d
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 e2f9a2bbb038afa3030d288f5b46c042de86cb72
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 c6542bc5c1f76ab700d3e8eb9ddbda4b96b047fd
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 4319404fd040c7c3df196634b86a69926c79d237
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 ba0d40671eba488ca677584a3a2ba2aa55b1f123
Author: Joel Becker <joel.becker at oracle.com>
Date:   Sat Jan 12 23:33:51 2008 -0800

    o2cb.init: Rename the control daemon like mount(8) sub-programs.
    
    The control daemon is now "ocfs2_controld.<stackname>", not
    "ocfs2_controld_<stackname>".  This matches the mount.ocfs2, fsck.ocfs2,
    etc convention.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 34c05e9bfbd6de59f7a581e0ec995c06acd61e86
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 5eda88651ecbadb65305903809a7e45ab8a58b4c
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_<stack> daemon will be started.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit ce89e6b79c405041d78f9b473f0706e3e05d24c8
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 1fd2e42e26a81ca4d30d28460e6aacaa48855af1
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 2a14c0fd8a9049bdd0ecf726722125afcea652e7
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 fa3680e0a464de6a7966bdedde6cf1930ce3ffa6
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 43ef53252c485c168ecc25204f5218a9209a84db
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 267021bf164ca4946dd922d1f981f94b24c21168
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 e60366181e4ea59c58ce7ba350718f701265fcc7
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