)]}'
{
  "log": [
    {
      "commit": "53da4939f349d4edd283b043219221ca5b78e4d4",
      "tree": "3e0f8e1bd5474822431cffd1e449df9b639e1772",
      "parents": [
        "a447c0932445f92ce6f4c1bd020f62c5097a7842"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 21 14:29:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: POSIX file locks support\n\nThis is actually pretty easy since fs/dlm already handles the bulk of the\nwork. The Ocfs2 userspace cluster stack module already uses fs/dlm as the\nunderlying lock manager, so I only had to add the right calls.\n\nCluster-aware POSIX locks (\"plocks\") can be turned off by the same means at\nUNIX locks - mount with \u0027noflocks\u0027, or create a local-only Ocfs2 volume.\nInternally, the file system uses two sets of file_operations, depending on\nwhether cluster aware plocks is required. This turns out to be easier than\nimplementing local-only versions of -\u003elock.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2c39450b39880e162b3eb339672314101f58ee1a",
      "tree": "48e99a531dd5263d7a84cf23492373f45fbdea6e",
      "parents": [
        "9f9a99f4eccc64650e932090cff0ebd07b81e334"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri May 30 15:58:26 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jun 16 10:46:52 2008 -0700"
      },
      "message": "ocfs2: Remove -\u003ehangup() from stack glue operations.\n\nThe -\u003ehangup() call was only used to execute ocfs2_hb_ctl.  Now that\nthe generic stack glue code handles this, the underlying stack drivers\ndon\u0027t need to know about it.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9f9a99f4eccc64650e932090cff0ebd07b81e334",
      "tree": "44315dfb1b5f3d4fc802e4d7cde5d681832b34f0",
      "parents": [
        "3878f110f71a0971ff7acc15dd6db711b6ef37c6"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri May 30 15:43:58 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jun 16 10:46:51 2008 -0700"
      },
      "message": "ocfs2: Move the call of ocfs2_hb_ctl into the stack glue.\n\nTake o2hb_stop() out of the o2cb code and make it part of the generic\nstack glue as ocfs2_leave_group().  This also allows us to remove the\nocfs2_get_hb_ctl_path() function - everything to do with hb_ctl is now\npart of stackglue.c.  o2cb no longer needs a -\u003ehangup() function.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "3878f110f71a0971ff7acc15dd6db711b6ef37c6",
      "tree": "39d5e1e8508cab23ba79c5da5abf897ca5843a9b",
      "parents": [
        "066519068ad2fbe98c7f45552b1f592903a9c8c8"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri May 30 15:30:49 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jun 16 10:46:50 2008 -0700"
      },
      "message": "ocfs2: Move the hb_ctl_path sysctl into the stack glue.\n\nocfs2 needs to call out to the hb_ctl program at unmount for all cluster\nstacks.  The first step is to move the hb_ctl_path sysctl out of the\no2cb code and into the generic stack glue.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cf4d8d75d8aba537a19b313a9364fd08ddbd5622",
      "tree": "8d07679a7a28375784b0ae9461ccea3d42aaafe5",
      "parents": [
        "d4b95eef4dc4a59bcd42bdf783638a2eaa57b4c8"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Feb 20 14:29:27 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:07 2008 -0700"
      },
      "message": "ocfs2: add fsdlm to stackglue\n\nAdd code to use fs/dlm.\n\n[ Modified to be part of the stack_user module -- Joel ]\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9c6c877c04ce17d76a35d2173d3a3840d6b796a2",
      "tree": "db8bd7a104f17ddc28b0e642f39cbd059aca0fb7",
      "parents": [
        "b61817e1166c5e19c08baf05196477cc345e1b1a"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 15:17:30 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Add the \u0027cluster_stack\u0027 sysfs file.\n\nUserspace can now query and specify the cluster stack in use via the\n/sys/fs/ocfs2/cluster_stack file.  By default, it is \u0027o2cb\u0027, which is\nthe classic stack.  Thus, old tools that do not know how to modify this\nfile will work just fine.  The stack cannot be modified if there is a\nlive filesystem.\n\nocfs2_cluster_connect() now takes the expected cluster stack as an\nargument.  This way, the filesystem and the stack glue ensure they are\nspeaking to the same backend.\n\nIf the stack is \u0027o2cb\u0027, the o2cb stack plugin is used.  For any other\nvalue, the fsdlm stack plugin is selected.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "286eaa95c5c5915a6b72cc3f0a2534161fd7928b",
      "tree": "dce03b619389cc5b5e2508b30ca3e1411401cf4e",
      "parents": [
        "e3dad42bf993a0f24eb6e46152356c9b119c15e8"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 15:03:57 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Break out stackglue into modules.\n\nWe define the ocfs2_stack_plugin structure to represent a stack driver.\nThe o2cb stack code is split into stack_o2cb.c.  This becomes the\nocfs2_stack_o2cb.ko module.\n\nThe stackglue generic functions are similarly split into the\nocfs2_stackglue.ko module.  This module now provides an interface to\nregister drivers.  The ocfs2_stack_o2cb driver registers itself.  As\npart of this interface, ocfs2_stackglue can load drivers on demand.\nThis is accomplished in ocfs2_cluster_connect().\n\nocfs2_cluster_disconnect() is now notified when a _hangup() is pending.\nIf a hangup is pending, it will not release the driver module and will\nlet _hangup() do that.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e3dad42bf993a0f24eb6e46152356c9b119c15e8",
      "tree": "df0419dc5e4387db7e6a6e0118bb5b9d01d8c0b2",
      "parents": [
        "553aa7e408eac402c00b67ddfa7aec13fe1f3a33"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 15:02:36 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Create ocfs2_stack_operations and split out the o2cb stack.\n\nDefine the ocfs2_stack_operations structure.  Build o2cb_stack_ops from\nall of the o2cb-specific stack functions.  Change the generic stack glue\nfunctions to call the stack_ops instead of the o2cb functions directly.\n\nThe o2cb functions are moved to stack_o2cb.c.  The headers are cleaned up\nto where only needed headers are included.\n\nIn this code, stackglue.c and stack_o2cb.c refer to some shared\nextern variables.  When they become modules, that will change.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "63e0c48ae6986a5bbb8e8dd9210c0e6ca79f2e50",
      "tree": "761be605ec94525d51ad09074bc70a2f9ddb2537",
      "parents": [
        "cf0acdcd640e9466059e69951c557e90b4bee45a"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jan 30 16:58:36 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Clean up stackglue initialization\n\nThe stack glue initialization function needs a better name so that it can be\nused cleanly when stackglue becomes a module.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cf0acdcd640e9466059e69951c557e90b4bee45a",
      "tree": "c54bccbed204770005265176500ae0549d4ca31a",
      "parents": [
        "1693a5c0117f8ccd010a666f97aaf0f14fb0a0e4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 29 16:59:55 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Abstract out a debugging function for underlying dlms.\n\ndlmglue.c was still referencing a raw o2dlm lksb in one instance.  Let\u0027s\ncreate a generic ocfs2_dlm_dump_lksb() function.  This allows underlying\nDLMs to print whatever they want about their lock.\n\nWe then move the o2dlm dump into stackglue.c where it belongs.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6953b4c008628b945bfe0cee97f6e78a98773859",
      "tree": "de00a19f59466d9e83b00112696afa5b02abbd9c",
      "parents": [
        "19fdb624dc8ccb663f6e48b3a3a3fa4e4e567fc1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 29 16:59:56 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Move o2hb functionality into the stack glue.\n\nThe last bit of classic stack used directly in ocfs2 code is o2hb.\nSpecifically, the check for heartbeat during mount and the call to\nocfs2_hb_ctl during unmount.\n\nWe create an extra API, ocfs2_cluster_hangup(), to encapsulate the call\nto ocfs2_hb_ctl.  Other stacks will just leave hangup() empty.\n\nThe check for heartbeat is moved into ocfs2_cluster_connect().  It will\nbe matched by a similar check for other stacks.\n\nWith this change, only stackglue.c includes cluster/ headers.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "19fdb624dc8ccb663f6e48b3a3a3fa4e4e567fc1",
      "tree": "b50e358686ca63789af4af07526e0d21f2806bfb",
      "parents": [
        "4670c46ded9a18268d1265417ff4ac72145a7917"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jan 30 15:38:24 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Abstract out node number queries.\n\nocfs2 asks the cluster stack for the local node\u0027s node number for two\nreasons; to fill the slot map and to print it. While the slot map isn\u0027t\nnecessary for userspace cluster stacks, the printing is very nice for\ndebugging. Thus we add ocfs2_cluster_this_node() as a generic API to get\nthis value. It is anticipated that the slot map will not be used under a\nuserspace cluster stack, so validity checks of the node num only need to\nexist in the slot map code. Otherwise, it just gets used and printed as an\nopaque value.\n\n[ Fixed up some \"int\" versus \"unsigned int\" issues and made osb-\u003enode_num\n  truly opaque. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4670c46ded9a18268d1265417ff4ac72145a7917",
      "tree": "4f70822ddee389a9c8ed572b215a3355c20db3a1",
      "parents": [
        "8f2c9c1b16bf6ed0903b29c49d56fa0109a390e4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 14:39:35 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Introduce the new ocfs2_cluster_connect/disconnect() API.\n\nThis step introduces a cluster stack agnostic API for initializing and\nexiting.  fs/ocfs2/dlmglue.c no longer uses o2cb/o2dlm knowledge to\nconnect to the stack.  It is all handled in stackglue.c.\n\nheartbeat.c no longer needs to know how it gets called.\nocfs2_do_node_down() is now a clean recovery trigger.\n\nThe big gotcha is the ordering of initializations and de-initializations done\nunderneath ocfs2_cluster_connect().  ocfs2_dlm_init() used to do all\no2dlm initialization in one block.  Thus, the o2dlm functionality of\nocfs2_cluster_connect() is very straightforward.  ocfs2_dlm_shutdown(),\nhowever, did a few things between de-registration of the eviction\ncallback and actually shutting down the domain.  Now de-registration and\nshutdown of the domain are wrapped within the single\nocfs2_cluster_disconnect() call.  I\u0027ve checked the code paths to make\nsure we can safely tear down things in ocfs2_dlm_shutdown() before\ncalling ocfs2_cluster_disconnect().  The filesystem has already set\nitself to ignore the callback.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8f2c9c1b16bf6ed0903b29c49d56fa0109a390e4",
      "tree": "8564370d96cbfb3a0125f17c93ee3587efef1ed1",
      "parents": [
        "7431cd7e8dd0e46e9b12bd6a1ac1286f4b420371"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 12:16:57 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Create the lock status block union.\n\nWrap the lock status block (lksb) in a union.  Later we will add a union\nelement for the fs/dlm lksb.  Create accessors for the status and lvb\nfields.\n\nOther than a debugging function, dlmglue.c does not directly reference\nthe o2dlm locking path anymore.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7431cd7e8dd0e46e9b12bd6a1ac1286f4b420371",
      "tree": "748d55c349f12ee504635748c64ee14026eda556",
      "parents": [
        "bd3e76105d4478ab89951a52d1a35250d24a9f16"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 12:15:37 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:03 2008 -0700"
      },
      "message": "ocfs2: Use -errno instead of dlm_status for ocfs2_dlm_lock/unlock() API.\n\nChange the ocfs2_dlm_lock/unlock() functions to return -errno values.\nThis is the first step towards elminiating dlm_status in\nfs/ocfs2/dlmglue.c.  The change also passes -errno values to\n-\u003eunlock_ast().\n\n[ Fix a return code in dlmglue.c and change the error translation table into\n  an array of ints. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "bd3e76105d4478ab89951a52d1a35250d24a9f16",
      "tree": "3a024471d62491f0160031663e0db23f42be37b8",
      "parents": [
        "24ef1815e5e13e50196eb1ab8ddc0d783443bdf8"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 12:14:57 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:03 2008 -0700"
      },
      "message": "ocfs2: Use global DLM_ constants in generic code.\n\nThe ocfs2 generic code should use the values in \u003clinux/dlmconstants.h\u003e.\nstackglue.c will convert them to o2dlm values.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "24ef1815e5e13e50196eb1ab8ddc0d783443bdf8",
      "tree": "4c44e87b1a80d4745416c9973258c40db8433829",
      "parents": [
        "386a2ef8576e966076c293f6496b9e3d7e3d9035"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 29 17:37:32 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:03 2008 -0700"
      },
      "message": "ocfs2: Separate out dlm lock functions.\n\nThis is the first in a series of patches to isolate ocfs2 from the\nunderlying cluster stack. Here we wrap the dlm locking functions with\nocfs2-specific calls. Because ocfs2 always uses the same dlm lock status\ncallbacks, we can eliminate the callbacks from the filesystem visible\nfunctions.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    }
  ]
}
