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

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Mar 14 16:55:58 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  22730a7118709b152b038cc2e2b98984782d2af5 (commit)

- Log -----------------------------------------------------------------
commit 22730a7118709b152b038cc2e2b98984782d2af5
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 2b318054ff2f44a4abfbd958042884d60349e1ad
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 a832dd6b7ce00a1107d1dc8bcd25e7f01c544225
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 9ac984f9b9e139528926a14050efa28680134495
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 8297463385239224594021c481fe0c7552c5e9f7
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 9f80fc4a6d7fa40cbfef569673ded3a1eca0ceed
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 5855875e144601ad4cd43673330c2c410c47c72b
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 79c3a863b5fcb8c6fdab1198e7782f8c223ac5ca
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 501add24a398f9f428b5e3eb8d8301a35e5de1fe
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 6469e043fce6884051eabdf3e63ad25512728e9a
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 6fabc3489180d4beb0cba9291c6c4e763b2ad17d
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 bfc439d0b5e8f0b7e29467e30c928bdab0e2ccf6
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 8f8c686acfb30cca5b6cd7216aa5c72e036cc20b
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 03543bc3e49a1b0ac224208e4693d857dba70aaa
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 8897ec5c70d2b6500804a2f341c57158c00cc76e
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 626f4f03e8fbef356d210579acd8d2e25c48db8f
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 becccfc9f437064bafc58fae5fc619f490f34ac4
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 2d2ab441d7447f2bcfa2eaa04b2ce7743e51e7da
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 5d4413428627efade3af49771846916fa8fc3ec8
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 79cfbe49a34fa6987b8fdcd548d54f5c052cf65c
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 1d90714ecea8f1c447ea2cc3c20a944f24a5ade3
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 71d8be68655823524367a2e7a3c0d589d4283506
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 c0814a4184cf69b5c619f2e533215a33a8ac50ac
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 a564e13f66ed38f4ffec94d32bdd70551a498297
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 323634acd53a4742477111b9c13ce1e84b008f63
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 d3d76031715cf0c56d7bdab3f87c0e6768e3cd44
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 63849e0fdbc2225e6d44a72058bcd3cb832cb55a
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 fa9a7b10ed05a0131991bd442c17be869af86e0c
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 ce430968368e5074ca0910b98693eab330e484c8
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 581b1ccdd7fae4f1523c5407253554747085f67e
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 6adb327b4c245941b80eada7e693176e01821a7c
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 6c65d10c80bd90a85c48a175e50a10ad096cd221
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 486dab837e8fa3db4af55b237154d3450fede3d5
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 4de8c16b669295c3417b08dca3490d188aa412ba
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 b3b71c9e1d08137028f10b1f7c3bb6fc073db386
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 0512ced54cbc170f1a9b19fb213b402025db0c0c
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 046c205ec87168e1f74c6f8e86aea67d03ee0b0e
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 a98c70193aa13023a2f5627c71e177d0e90012ca
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 4cdab212b16e84c6b740242e5514785136650bd5
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