)]}'
{
  "log": [
    {
      "commit": "4875647a08e35f77274838d97ca8fa44158d50e2",
      "tree": "bf8a39eaf3219af5d661ed3e347545306fd84bda",
      "parents": [
        "6d40c4a708e0e996fd9c60d4093aebba5fe1f749"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Apr 26 15:54:29 2012 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed May 02 14:15:27 2012 -0500"
      },
      "message": "dlm: fixes for nodir mode\n\nThe \"nodir\" mode (statically assign master nodes instead\nof using the resource directory) has always been highly\nexperimental, and never seriously used.  This commit\nfixes a number of problems, making nodir much more usable.\n\n- Major change to recovery: recover all locks and restart\n  all in-progress operations after recovery.  In some\n  cases it\u0027s not possible to know which in-progess locks\n  to recover, so recover all.  (Most require recovery\n  in nodir mode anyway since rehashing changes most\n  master nodes.)\n\n- Change the way nodir mode is enabled, from a command\n  line mount arg passed through gfs2, into a sysfs\n  file managed by dlm_controld, consistent with the\n  other config settings.\n\n- Allow recovering MSTCPY locks on an rsb that has not\n  yet been turned into a master copy.\n\n- Ignore RCOM_LOCK and RCOM_LOCK_REPLY recovery messages\n  from a previous, aborted recovery cycle.  Base this\n  on the local recovery status not being in the state\n  where any nodes should be sending LOCK messages for the\n  current recovery cycle.\n\n- Hold rsb lock around dlm_purge_mstcpy_locks() because it\n  may run concurrently with dlm_recover_master_copy().\n\n- Maintain highbast on process-copy lkb\u0027s (in addition to\n  the master as is usual), because the lkb can switch\n  back and forth between being a master and being a\n  process copy as the master node changes in recovery.\n\n- When recovering MSTCPY locks, flag rsb\u0027s that have\n  non-empty convert or waiting queues for granting\n  at the end of recovery.  (Rename flag from LOCKS_PURGED\n  to RECOVER_GRANT and similar for the recovery function,\n  because it\u0027s not only resources with purged locks\n  that need grant a grant attempt.)\n\n- Replace a couple of unnecessary assertion panics with\n  error messages.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "10d1459fafbb02a18e7bc8f2c384a9e973560b00",
      "tree": "62d49123ba7425307c3d5ab909cc066fa2ee82e5",
      "parents": [
        "23e8e1aaacb10d9f05e44a93e10ea4ee5b3838a5"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jul 18 15:28:34 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Jul 19 14:22:32 2011 -0500"
      },
      "message": "dlm: don\u0027t limit active work items\n\nAllow multiple workqueue items (locks with callbacks) to be\nprocessed concurrently.  There should be no reason not to\ntake advantage of this workqueue feature.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "23e8e1aaacb10d9f05e44a93e10ea4ee5b3838a5",
      "tree": "7c94bc4eeb9dfd85a26869003c56dc45fc6fd697",
      "parents": [
        "883ba74f43092823d0ed4c6b21f0171e9b334607"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Apr 05 13:16:24 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Jul 15 12:30:43 2011 -0500"
      },
      "message": "dlm: use workqueue for callbacks\n\nInstead of creating our own kthread (dlm_astd) to deliver\ncallbacks for all lockspaces, use a per-lockspace workqueue\nto deliver the callbacks.  This eliminates complications and\nslowdowns from many lockspaces sharing the same thread.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "8304d6f24cc1221392b6d61fa9d16631cbd6beb7",
      "tree": "ca9b333d500d2fc56a45263aa08c4093875cbe12",
      "parents": [
        "35d34df711e8b44846e759d8cfddb4ec6877cccb"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Feb 21 14:58:21 2011 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Mar 10 10:40:00 2011 -0600"
      },
      "message": "dlm: record full callback state\n\nChange how callbacks are recorded for locks.  Previously, information\nabout multiple callbacks was combined into a couple of variables that\nindicated what the end result should be.  In some situations, we\ncould not tell from this combined state what the exact sequence of\ncallbacks were, and would end up either delivering the callbacks in\nthe wrong order, or suppress redundant callbacks incorrectly.  This\nnew approach records all the data for each callback, leaving no\nuncertainty about what needs to be delivered.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "7fe2b3190b8b299409f13cf3a6f85c2bd371f8bb",
      "tree": "36af13880f834cd1c7fd92200ebcc33c64d9edf0",
      "parents": [
        "b0483e78e5c4c9871fc5541875b3bc006846d46b"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Feb 24 11:08:18 2010 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Feb 24 11:46:53 2010 -0600"
      },
      "message": "dlm: fix ordering of bast and cast\n\nWhen both blocking and completion callbacks are queued for lock,\nthe dlm would always deliver the completion callback (cast) first.\nIn some cases the blocking callback (bast) is queued before the\ncast, though, and should be delivered first.  This patch keeps\ntrack of the order in which they were queued and delivers them\nin that order.\n\nThis patch also keeps track of the granted mode in the last cast\nand eliminates the following bast if the bast mode is compatible\nwith the preceding cast mode.  This happens when a remotely mastered\nlock is demoted, e.g. EX-\u003eNL, in which case the local node queues\na cast immediately after sending the demote message.  In this way\na cast can be queued for a mode, e.g. NL, that makes an in-transit\nbast extraneous.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "722d74219ea21223c74e5e894b0afcc5e4ca75a7",
      "tree": "6a35db4b6e750cf1e1eabe7e15a0ba858baafe26",
      "parents": [
        "d022509d1c54be4918e7fc8f1195ee8c392e9a57"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 23 10:22:56 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:22:56 2008 -0600"
      },
      "message": "dlm: fs/dlm/ast.c: fix warning\n\nfs/dlm/ast.c: In function \u0027dlm_astd\u0027:\nfs/dlm/ast.c:64: warning: \u0027bastmode\u0027 may be used uninitialized in this function\n\nCleans code up.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "fd22a51bcc0b7b76fc729b02316214fd979f9fe1",
      "tree": "e23326bb9df7cf0ee76b3b6b61c82364ff0aed78",
      "parents": [
        "03339696314fffb95dafb349b84243358e945ce6"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 09 11:55:46 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:16:46 2008 -0600"
      },
      "message": "dlm: improve how bast mode handling\n\nThe lkb bastmode value is set in the context of processing the\nlock, and read by the dlm_astd thread.  Because it\u0027s accessed\nin these two separate contexts, the writing/reading ought to\nbe done under a lock.  This is simple to do by setting it and\nreading it when the lkb is added to and removed from dlm_astd\u0027s\ncallback list which is properly locked.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "03339696314fffb95dafb349b84243358e945ce6",
      "tree": "4fcdacf43dbe0adaeba79374d54395b5b4f0c035",
      "parents": [
        "d61e9aac96317a43c192f1faabfa95d4d675b7ce"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Dec 08 17:14:10 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:16:32 2008 -0600"
      },
      "message": "dlm: remove extra blocking callback check\n\nJust before delivering a blocking callback (bast), the dlm_astd\nthread checks again that the granted mode of the lkb actually\nblocks the mode requested by the bast.  The idea behind this was\noriginally that the granted mode may have changed since the bast\nwas queued, making the callback now unnecessary.  Reasons for\nremoving this extra check are:\n- dlm_astd doesn\u0027t lock the rsb before reading the lkb grmode, so\n  it\u0027s not technically safe (this removes the long standing FIXME)\n- after running some tests, it doesn\u0027t appear the check ever actually\n  eliminates a bast\n- delivering an unnecessary blocking callback isn\u0027t a bad thing and\n  can happen anyway\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "d61e9aac96317a43c192f1faabfa95d4d675b7ce",
      "tree": "d6e256d8394c4458012c1673ff4d5741d893b87a",
      "parents": [
        "1521848cbb42935a52d11305c054b14461ad061c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Dec 10 09:31:02 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:16:13 2008 -0600"
      },
      "message": "dlm: replace schedule with cond_resched\n\nThis is a one-liner to use cond_resched() rather than schedule()\nin the ast delivery loop. It should not be necessary to schedule\nevery time, so this will save some cpu time while continuing to\nallow scheduling when required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "e5dae548b0b5397e070de793be925cfc5813ad95",
      "tree": "5ad4c94cbeab745fc1bac3426423c405971c6796",
      "parents": [
        "cb79f1998d89821a4dbac47f59a46ee3fbbf3c61"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Feb 06 00:35:45 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Feb 06 00:35:45 2008 -0600"
      },
      "message": "dlm: proper types for asts and basts\n\nUse proper types for ast and bast functions, and use\nconsistent type for ast param.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "8fa1de386f4d72f0710b389ccf96308fef87df78",
      "tree": "316233a16c3185fc5f5164c66f20058c5954c739",
      "parents": [
        "6ed7257b46709e87d79ac2b6b819b7e0c9184998"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Apr 04 17:25:29 2007 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:11:25 2007 +0100"
      },
      "message": "[DLM] fs/dlm/ast.c should #include \"ast.h\"\n\nEvery file should include the headers containing the prototypes for\nit\u0027s global functions.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "32f105a123804c7882d447f013aeb3530b4d63c0",
      "tree": "8e8006aa63fc31290d3cd1bc5e93b9cd3f9580d7",
      "parents": [
        "c059f70e357af1adcfc1a9294e44cdd945adb841"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Aug 23 16:07:31 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 23 16:07:31 2006 -0400"
      },
      "message": "[DLM] down conversion clearing flags\n\nThe down-conversion optimization was resulting in the lkb flags being\ncleared because the stub message reply had no flags value set.  Copy the\ncurrent flags into the stub message so they\u0027ll be copied back into the lkb\nas part of processing the fake reply.  Also add an assertion to catch this\nerror more directly if it exists elsewhere.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "597d0cae0f99f62501e229bed50e8149604015bb",
      "tree": "b6cab09ff6fe2246740848164c0a52d5c03136a0",
      "parents": [
        "2eb168ca94aba3bcae350ad9b31870955174a218"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jul 12 16:44:04 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 13 09:25:34 2006 -0400"
      },
      "message": "[DLM] dlm: user locks\n\nThis changes the way the dlm handles user locks.  The core dlm is now\naware of user locks so they can be dealt with more efficiently.  There is\nno more dlm_device module which previously managed its own duplicate copy\nof every user lock.\n\nSigned-off-by: Patrick Caulfield \u003cpcaulfie@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "901359256b2666f52a3a7d3f31927677e91b3a2a",
      "tree": "24d4ee2c1ad63a0e6c3a303ad67eac3342772c4f",
      "parents": [
        "ec5800246607183a1d7fd0bae5f087c12439e9e7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Jan 20 08:47:07 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Fri Jan 20 08:47:07 2006 +0000"
      },
      "message": "[DLM] Update DLM to the latest patch level\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steve Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e7fd41792fc0ee52a05fcaac87511f118328d147",
      "tree": "eee5227088ba97daef795e385b7548d2a1cc4cb6",
      "parents": [
        "e47314207032cfd1157b8c377df162839b32ea6f"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 18 09:30:29 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 18 09:30:29 2006 +0000"
      },
      "message": "[DLM] The core of the DLM for GFS2/CLVM\n\nThis is the core of the distributed lock manager which is required\nto use GFS2 as a cluster filesystem. It is also used by CLVM and\ncan be used as a standalone lock manager independantly of either\nof these two projects.\n\nIt implements VAX-style locking modes.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steve Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ]
}
