)]}'
{
  "log": [
    {
      "commit": "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
      "tree": "76907a9a5066642a32cb238ef8d8367fc612d064",
      "parents": [
        "7b3480f8b701170c046e1ed362946f5f0d005e13",
        "60f98d1839376d30e13f3e452dce2433fad3060e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: add recovery callbacks\n  dlm: add node slots and generation\n  dlm: move recovery barrier calls\n  dlm: convert rsb list to rb_tree\n"
    },
    {
      "commit": "60f98d1839376d30e13f3e452dce2433fad3060e",
      "tree": "b8b43859ad26519bd75a40920f6d1ca46f2d44a5",
      "parents": [
        "757a42719635495779462514458bbfbf12a37dac"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Nov 02 14:30:58 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 04 08:56:31 2012 -0600"
      },
      "message": "dlm: add recovery callbacks\n\nThese new callbacks notify the dlm user about lock recovery.\nGFS2, and possibly others, need to be aware of when the dlm\nwill be doing lock recovery for a failed lockspace member.\n\nIn the past, this coordination has been done between dlm and\nfile system daemons in userspace, which then direct their\nkernel counterparts.  These callbacks allow the same\ncoordination directly, and more simply.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "757a42719635495779462514458bbfbf12a37dac",
      "tree": "be6ea155fc54c397cb57eb193b81824b37989e56",
      "parents": [
        "f95a34c66554235b70a681fcd9feebc195f7ec0e"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Oct 20 13:26:28 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 04 08:55:57 2012 -0600"
      },
      "message": "dlm: add node slots and generation\n\nSlot numbers are assigned to nodes when they join the lockspace.\nThe slot number chosen is the minimum unused value starting at 1.\nOnce a node is assigned a slot, that slot number will not change\nwhile the node remains a lockspace member.  If the node leaves\nand rejoins it can be assigned a new slot number.\n\nA new generation number is also added to a lockspace.  It is\nset and incremented during each recovery along with the slot\ncollection/assignment.\n\nThe slot numbers will be passed to gfs2 which will use them as\njournal id\u0027s.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "f95a34c66554235b70a681fcd9feebc195f7ec0e",
      "tree": "fab03b65c76767e69ac0d58c1a7bae3bfae7459a",
      "parents": [
        "9beb3bf5a92bb8fc6503f844bf0772df29f14a02"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Oct 14 12:34:58 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 04 08:53:27 2012 -0600"
      },
      "message": "dlm: move recovery barrier calls\n\nPut all the calls to recovery barriers in the same function\nto clarify where they each happen.  Should not change any behavior.\nAlso modify some recovery debug lines to make them consistent.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "4e3fd7a06dc20b2d8ec6892233ad2012968fe7b6",
      "tree": "da3fbec7672ac6b967dfa31cec6c88f468a57fa2",
      "parents": [
        "40ba84993d66469d336099c5af74c3da5b73e28d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 21 03:39:03 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 22 16:43:32 2011 -0500"
      },
      "message": "net: remove ipv6_addr_copy()\n\nC assignment can handle struct in6_addr copying.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9beb3bf5a92bb8fc6503f844bf0772df29f14a02",
      "tree": "c60963c27d0a93ae1f572e6fda9c090a4a702d4e",
      "parents": [
        "c3b92c8787367a8bb53d57d9789b558f1295cc96"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Oct 26 15:24:55 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Nov 18 10:20:15 2011 -0600"
      },
      "message": "dlm: convert rsb list to rb_tree\n\nChange the linked lists to rb_tree\u0027s in the rsb\nhash table to speed up searches.  Slow rsb searches\nwere having a large impact on gfs2 performance due\nto the large number of dlm locks gfs2 uses.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "2dad3206db5c3832cde1f58650027fea3ff7adf3",
      "tree": "96314a554afdab5904a939793156d4ae23ec11c1",
      "parents": [
        "84635d68be4b846ba984a89f386524153330c597",
        "0c12eaffdf09466f36a9ffe970dda8f4aeb6efc0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 22:49:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 22:49:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.1\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-3.1\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: don\u0027t break lease on CLAIM_DELEGATE_CUR\n  locks: rename lock-manager ops\n  nfsd4: update nfsv4.1 implementation notes\n  nfsd: turn on reply cache for NFSv4\n  nfsd4: call nfsd4_release_compoundargs from pc_release\n  nfsd41: Deny new lock before RECLAIM_COMPLETE done\n  fs: locks: remove init_once\n  nfsd41: check the size of request\n  nfsd41: error out when client sets maxreq_sz or maxresp_sz too small\n  nfsd4: fix file leak on open_downgrade\n  nfsd4: remember to put RW access on stateid destruction\n  NFSD: Added TEST_STATEID operation\n  NFSD: added FREE_STATEID operation\n  svcrpc: fix list-corrupting race on nfsd shutdown\n  rpc: allow autoloading of gss mechanisms\n  svcauth_unix.c: quiet sparse noise\n  svcsock.c: include sunrpc.h to quiet sparse noise\n  nfsd: Remove deprecated nfsctl system call and related code.\n  NFSD: allow OP_DESTROY_CLIENTID to be only op in COMPOUND\n\nFix up trivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "8fb47a4fbf858a164e973b8ea8ef5e83e61f2e50",
      "tree": "d3b55fbce0e7ba5708a55b91b1ab4079ad192db6",
      "parents": [
        "c46556c6be057da79f51b1a8325ec4c27938bd49"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Jul 20 20:21:59 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Jul 20 20:23:19 2011 -0400"
      },
      "message": "locks: rename lock-manager ops\n\nBoth the filesystem and the lock manager can associate operations with a\nlock.  Confusingly, one of them (fl_release_private) actually has the\nsame name in both operation structures.\n\nIt would save some confusion to give the lock-manager ops different\nnames.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@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": "883ba74f43092823d0ed4c6b21f0171e9b334607",
      "tree": "c738ca0d3187ffd093c9684b139f2966b64a9e14",
      "parents": [
        "3881ac04ebf94268ba3d6e486aa524fd41f893a9"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jul 14 12:31:49 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jul 14 12:31:49 2011 -0500"
      },
      "message": "dlm: remove deadlock debug print\n\ngfs2 recently began using this feature heavily,\ncreating more debug output than we want to see.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "3881ac04ebf94268ba3d6e486aa524fd41f893a9",
      "tree": "2ddb5c099f60f541d7e50f669f84fd58c3920bec",
      "parents": [
        "3d6aa675fff9eee5a6339d67b355b63a6d69565f"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jul 07 14:05:03 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Jul 12 16:02:09 2011 -0500"
      },
      "message": "dlm: improve rsb searches\n\nBy pre-allocating rsb structs before searching the hash\ntable, they can be inserted immediately.  This avoids\nalways having to repeat the search when adding the struct\nto hash list.\n\nThis also adds space to the rsb struct for a max resource\nname, so an rsb allocation can be used by any request.\nThe constant size also allows us to finally use a slab\nfor the rsb structs.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "3d6aa675fff9eee5a6339d67b355b63a6d69565f",
      "tree": "f401792f4e92f2473d361bfb185c517838ab2032",
      "parents": [
        "a22ca4806822154c163c6f220f4c2a05adf96fc7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jul 06 17:00:54 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jul 11 08:43:45 2011 -0500"
      },
      "message": "dlm: keep lkbs in idr\n\nThis is simpler and quicker than the hash table, and\navoids needing to search the hash list for every new\nlkid to check if it\u0027s used.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "a22ca4806822154c163c6f220f4c2a05adf96fc7",
      "tree": "d6127c1ab201af005e662c79e42b2f5170811b7a",
      "parents": [
        "5d70828a7703b1f68e2fd4ce4b42b28d9623f52b"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jul 11 08:40:53 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jul 11 08:40:53 2011 -0500"
      },
      "message": "dlm: fix kmalloc args\n\nThe gfp and size args were switched.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "5d70828a7703b1f68e2fd4ce4b42b28d9623f52b",
      "tree": "8ec65e9895776d568a475e3e8796fe9ababe8d2e",
      "parents": [
        "bcaadf5c1ac4ff84b52174a84adb86a1e3e806dd"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Jul 10 22:54:31 2011 +0200"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jul 11 08:39:42 2011 -0500"
      },
      "message": "dlm: don\u0027t do pointless NULL check, use kzalloc and fix order of arguments\n\nIn fs/dlm/lock.c in the dlm_scan_waiters() function there are 3 small\nissues:\n\n1) There\u0027s no need to test the return value of the allocation and do a\nmemset if is succeedes. Just use kzalloc() to obtain zeroed memory.\n\n2) Since kfree() handles NULL pointers gracefully, the test of\n\u0027warned\u0027 against NULL before the kfree() after the loop is completely\npointless. Remove it.\n\n3) The arguments to kmalloc() (now kzalloc()) were swapped. Thanks to\nDr. David Alan Gilbert for pointing this out.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "bcaadf5c1ac4ff84b52174a84adb86a1e3e806dd",
      "tree": "780067c96456dec980e53e83aa7171ae74897738",
      "parents": [
        "c282af49901679b63c139b8330b0aba027aa3b56"
      ],
      "author": {
        "name": "Masatake YAMATO",
        "email": "yamato@redhat.com",
        "time": "Mon Jul 04 12:25:51 2011 +0900"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jul 06 16:37:23 2011 -0500"
      },
      "message": "dlm: dump address of unknown node\n\nWhen the dlm fails to make a network connection to another\nnode, include the address of the node in the error message.\n\nSigned-off-by: Masatake YAMATO \u003cyamato@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "c282af49901679b63c139b8330b0aba027aa3b56",
      "tree": "22665116a1761b8580b407ff53a59cba047b60b8",
      "parents": [
        "55b3286d3dfd74a1daa5c902cb76575ba0187388"
      ],
      "author": {
        "name": "Bryn M. Reeves",
        "email": "bmr@redhat.com",
        "time": "Fri Jul 01 15:49:23 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Jul 01 15:49:23 2011 -0500"
      },
      "message": "dlm: use vmalloc for hash tables\n\nAllocate dlm hash tables in the vmalloc area to allow a greater\nmaximum size without restructuring of the hash table code.\n\nSigned-off-by: Bryn M. Reeves \u003cbmr@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "55b3286d3dfd74a1daa5c902cb76575ba0187388",
      "tree": "b2f473f81c270b0a871d978d6c575f39d0702c23",
      "parents": [
        "0e90ed0e8b9b1c25040442f1d20c799751b1e727"
      ],
      "author": {
        "name": "Masatake YAMATO",
        "email": "yamato@redhat.com",
        "time": "Thu Jun 30 21:37:10 2011 +0900"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jun 30 14:45:28 2011 -0500"
      },
      "message": "dlm: show addresses in configfs\n\nDisplay all addresses the dlm is using for the local node\nfrom the configfs file config/dlm/\u003ccluster\u003e/comms/\u003ccomm\u003e/addr_list\nAlso make the addr file write only.\n\nSigned-off-by: Masatake YAMATO \u003cyamato@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "b7c2f036284452627d793af981877817b37d4351",
      "tree": "c96bbf7558512b27f4802994c9271ccd0f1c19f3",
      "parents": [
        "14587a2a25447813996e6fb9e48d48627cb75a5d",
        "8d2c50e3b65c8d48d51088f541c13fde46cc8133"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 13:19:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 13:19:00 2011 -0700"
      },
      "message": "Merge branch \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:\n  gfs2: Drop __TIME__ usage\n  isdn/diva: Drop __TIME__ usage\n  atm: Drop __TIME__ usage\n  dlm: Drop __TIME__ usage\n  wan/pc300: Drop __TIME__ usage\n  parport: Drop __TIME__ usage\n  hdlcdrv: Drop __TIME__ usage\n  baycom: Drop __TIME__ usage\n  pmcraid: Drop __DATE__ usage\n  edac: Drop __DATE__ usage\n  rio: Drop __DATE__ usage\n  scsi/wd33c93: Drop __TIME__ usage\n  scsi/in2000: Drop __TIME__ usage\n  aacraid: Drop __TIME__ usage\n  media/cx231xx: Drop __TIME__ usage\n  media/radio-maxiradio: Drop __TIME__ usage\n  nozomi: Drop __TIME__ usage\n  cyclades: Drop __TIME__ usage\n"
    },
    {
      "commit": "75ce481e15911b4557da1250556eab5ffbd14d0d",
      "tree": "ac72c7243bad4e1d8edb0377dca50d97b817703b",
      "parents": [
        "772e289862e111ce6b4d387e65cd5b7a8b618705"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Fri Apr 01 12:41:20 2011 +0200"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu May 26 09:46:17 2011 +0200"
      },
      "message": "dlm: Drop __TIME__ usage\n\nThe kernel already prints its build timestamp during boot, no need to\nrepeat it in random drivers and produce different object files each\ntime.\n\nCc: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: cluster-devel@redhat.com\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "df3256f9ab7ae2127144de5ba2abca332278a42d",
      "tree": "c2cbdca425b745894a23f8cf7d7c91effcd7478c",
      "parents": [
        "b0ca118dbacbc6c35e15f216e25e95cca7aedf5b",
        "901025d2f3194b4868980c8ba80df4cc0aa1282c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 15:04:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 15:04:00 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: make plock operation killable\n  dlm: remove shared message stub for recovery\n  dlm: delayed reply message warning\n  dlm: Remove superfluous call to recalc_sigpending()\n"
    },
    {
      "commit": "901025d2f3194b4868980c8ba80df4cc0aa1282c",
      "tree": "66df1472a10def86391b124ea69d6f182aef98db",
      "parents": [
        "2a7ce0edd661b3144c7b916ecf1eba0967b6d4a5"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Mar 02 14:20:04 2011 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon May 23 10:47:06 2011 -0500"
      },
      "message": "dlm: make plock operation killable\n\nAllow processes blocked on plock requests to be interrupted\nwhen they are killed.  This leaves the problem of cleaning\nup the lock state in userspace.  This has three parts:\n\n1. Add a flag to unlock operations sent to userspace\nindicating the file is being closed.  Userspace will\nthen look for and clear any waiting plock operations that\nwere abandoned by an interrupted process.\n\n2. Queue an unlock-close operation (like in 1) to clean up\nuserspace from an interrupted plock request.  This is needed\nbecause the vfs will not send a cleanup-unlock if it sees no\nlocks on the file, which it won\u0027t if the interrupted operation\nwas the only one.\n\n3. Do not use replies from userspace for unlock-close operations\nbecause they are unnecessary (they are just cleaning up for the\nprocess which did not make an unlock call).  This also simplifies\nthe new unlock-close generated from point 2.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "2a7ce0edd661b3144c7b916ecf1eba0967b6d4a5",
      "tree": "b667622eda00739c54e2010c5f38bba9c76947c7",
      "parents": [
        "c6ff669bac5c409f4cb74366248f51b73f7d6feb"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Apr 04 15:19:59 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Apr 05 10:54:47 2011 -0500"
      },
      "message": "dlm: remove shared message stub for recovery\n\nkmalloc a stub message struct during recovery instead of sharing the\nstruct in the lockspace.  This leaves the lockspace stub_ms only for\nfaking downconvert replies, where it is never modified and sharing\nis not a problem.\n\nAlso improve the debug messages in the same recovery function.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "c6ff669bac5c409f4cb74366248f51b73f7d6feb",
      "tree": "14c4b7dc943a7dde8fd6d80bc9d149dadc0d59b8",
      "parents": [
        "4bcad6c1ef53a9a0224f4654ceb3b9030d0769ec"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Mar 28 14:17:26 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Apr 01 14:19:06 2011 -0500"
      },
      "message": "dlm: delayed reply message warning\n\nAdd an option (disabled by default) to print a warning message\nwhen a lock has been waiting a configurable amount of time for\na reply message from another node.  This is mainly for debugging.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "4bcad6c1ef53a9a0224f4654ceb3b9030d0769ec",
      "tree": "ebb381a3166818f01fe1f0b170564b7576350705",
      "parents": [
        "18bcd0c8cb7d85a9063b88ec810dc1cdc0974518"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@linux.intel.com",
        "time": "Thu Mar 24 13:56:47 2011 +0000"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Mar 28 10:20:17 2011 -0500"
      },
      "message": "dlm: Remove superfluous call to recalc_sigpending()\n\nrecalc_sigpending() is called within sigprocmask(), so there is no\nneed call it again after sigprocmask() has returned.\n\nSigned-off-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "e43f055a953721ed1787a039ab5e720755596ea2",
      "tree": "7f98c4639974cd12343b964fbdd2c440bf2fcaad",
      "parents": [
        "e3853a90e218bcb2e48d3f403d0962bf54444f5f"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Mar 10 13:22:34 2011 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Mar 10 13:22:34 2011 -0600"
      },
      "message": "dlm: use alloc_workqueue function\n\nReplaces deprecated create_singlethread_workqueue().\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "e3853a90e218bcb2e48d3f403d0962bf54444f5f",
      "tree": "568d7dab02e09d6b871c449746451b48f306d288",
      "parents": [
        "8304d6f24cc1221392b6d61fa9d16631cbd6beb7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Mar 10 13:07:17 2011 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Mar 10 13:08:22 2011 -0600"
      },
      "message": "dlm: increase default hash table sizes\n\nMake all three hash tables a consistent size of 1024\nrather than 1024, 512, 256.  All three tables, for\nresources, locks, and lock dir entries, will generally\nbe filled to the same order of magnitude.\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": "6b155c8fd4d239f7d883d455bbad1be47724bbfc",
      "tree": "31458f5bb3119220dcd50ce569cbba040e93ae21",
      "parents": [
        "d2478521afc20227658a10a8c5c2bf1a2aa615b3"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 11 16:44:31 2011 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 11 16:50:47 2011 -0600"
      },
      "message": "dlm: use single thread workqueues\n\nThe recent commit to use cmwq for send and recv threads\ndcce240ead802d42b1e45ad2fcb2ed4a399cb255 introduced problems,\napparently due to multiple workqueue threads.  Single threads\nmake the problems go away, so return to that until we fully\nunderstand the concurrency issues with multiple threads.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "86c747d2a4f028fe2fdf091c3a81d0e187827682",
      "tree": "1c2017be7a3e3877868b17914688991625bccbe9",
      "parents": [
        "d9f9ab51e55e36379773752ffeaac677b080d469"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:14:52 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:22:37 2011 +0000"
      },
      "message": "dlm: Make DLM depend on CONFIGFS_FS\n\nThis patch fixes the following kconfig error after changing\nCONFIGFS_FS -\u003e select SYSFS:\n\nfs/sysfs/Kconfig:1:error: recursive dependency detected!\nfs/sysfs/Kconfig:1:\tsymbol SYSFS is selected by CONFIGFS_FS\nfs/configfs/Kconfig:1:\tsymbol CONFIGFS_FS is selected by DLM\nfs/dlm/Kconfig:1:\tsymbol DLM depends on SYSFS\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b9d41052794385f9d47ebb7acf4a772f3ad02398",
      "tree": "3908936d603917c36079a595e85ba0abd72b1c1c",
      "parents": [
        "f92c8dd7a0eb18124521e2b549f88422e17f707b"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Dec 13 13:42:24 2010 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Dec 13 13:42:24 2010 -0600"
      },
      "message": "dlm: sanitize work_start() in lowcomms.c\n\nThe create_workqueue() returns NULL if failed rather than ERR_PTR().\nFix error checking and remove unnecessary variable \u0027error\u0027.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "f92c8dd7a0eb18124521e2b549f88422e17f707b",
      "tree": "a93e644b31f9c8860a6dd513abfc0005bb602c0f",
      "parents": [
        "cb2d45da81c86d5191b19d0f67732a854bc0253c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Nov 12 11:15:20 2010 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Nov 12 11:15:20 2010 -0600"
      },
      "message": "dlm: reduce cond_resched during send\n\nCalling cond_resched() after every send can unnecessarily\ndegrade performance.  Go back to an old method of scheduling\nafter 25 messages.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "cb2d45da81c86d5191b19d0f67732a854bc0253c",
      "tree": "6220ce5780e13684024f2693f66f5749c2cb472c",
      "parents": [
        "dcce240ead802d42b1e45ad2fcb2ed4a399cb255"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Nov 12 11:12:55 2010 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Nov 12 11:12:55 2010 -0600"
      },
      "message": "dlm: use TCP_NODELAY\n\nNagling doesn\u0027t help and can sometimes hurt dlm comms.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "dcce240ead802d42b1e45ad2fcb2ed4a399cb255",
      "tree": "f9531f06ad6e0987d3c6782cfe0a7ed335d82e48",
      "parents": [
        "b36930dd508e00f0c5083bcd57d25de6d0375c76"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 12 12:12:29 2010 +0000"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Nov 12 11:08:03 2010 -0600"
      },
      "message": "dlm: Use cmwq for send and receive workqueues\n\nSo far as I can tell, there is no reason to use a single-threaded\nsend workqueue for dlm, since it may need to send to several sockets\nconcurrently. Both workqueues are set to WQ_MEM_RECLAIM to avoid\nany possible deadlocks, WQ_HIGHPRI since locking traffic is highly\nlatency sensitive (and to avoid a priority inversion wrt GFS2\u0027s\nglock_workqueue) and WQ_FREEZABLE just in case someone needs to do\nthat (even though with current cluster infrastructure, it doesn\u0027t\nmake sense as the node will most likely land up ejected from the\ncluster) in the future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "b36930dd508e00f0c5083bcd57d25de6d0375c76",
      "tree": "802e874ff1f53289250c13ac260a8df033b8f47d",
      "parents": [
        "f6614b7bb405a9b35dd28baea989a749492c46b2"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 21:56:39 2010 -0800"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Nov 11 13:05:12 2010 -0600"
      },
      "message": "dlm: Handle application limited situations properly.\n\nIn the normal regime where an application uses non-blocking I/O\nwrites on a socket, they will handle -EAGAIN and use poll() to\nwait for send space.\n\nThey don\u0027t actually sleep on the socket I/O write.\n\nBut kernel level RPC layers that do socket I/O operations directly\nand key off of -EAGAIN on the write() to \"try again later\" don\u0027t\nuse poll(), they instead have their own sleeping mechanism and\nrely upon -\u003esk_write_space() to trigger the wakeup.\n\nSo they do effectively sleep on the write(), but this mechanism\nalone does not let the socket layers know what\u0027s going on.\n\nTherefore they must emulate what would have happened, otherwise\nTCP cannot possibly see that the connection is application window\nsize limited.\n\nHandle this, therefore, like SUNRPC by setting SOCK_NOSPACE and\nbumping the -\u003esk_write_count as needed when we hit the send buffer\nlimits.\n\nThis should make TCP send buffer size auto-tuning and the\n-\u003esk_write_space() callback invocations actually happen.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "2c15bd00a5d6b2b64e006e91e2196f0c6a764cb6",
      "tree": "2bfc3434e4c35d4eb91e5c3c02714c1fd2b83afb",
      "parents": [
        "5fe3a5ae5c09d53b2b3c7a971e1d87ab3a747055",
        "269cddd44e3588d1c50a7ec055b78de4d6c72cb6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:33:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:33:16 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: Fix dlm lock status block comment in dlm.h\n  dlm: Don\u0027t send callback to node making lock request when \"try 1cb\" fails\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "314dd2a05340fffbe217c5e40ec6c3bd1d07bf89",
      "tree": "c4e5cf876ed951e47e7fad8bef0c69ea5df0c7dd",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 03 10:07:48 2010 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Sep 03 10:10:47 2010 -0500"
      },
      "message": "dlm: Don\u0027t send callback to node making lock request when \"try 1cb\" fails\n\nWhen converting a lock, an lkb is in the granted state and also being used\nto request a new state. In the case that the conversion was a \"try 1cb\"\ntype which has failed, and if the new state was incompatible with the old\nstate, a callback was being generated to the requesting node. This is\nincorrect as callbacks should only be sent to all the other nodes holding\nblocking locks. The requesting node should receive the normal (failed)\nresponse to its \"try 1cb\" conversion request only.\n\nThis was discovered while debugging a performance problem on GFS2, however\nthis fix also speeds up GFS as well. In the GFS2 case the performance gain\nis over 10x for cases of write activity to an inode whose glock is cached\non another, idle (wrt that glock) node.\n\n(comment added, dct)\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "f70cb33b9c270f4f1a7f28327e7d35dbf1a6fc40",
      "tree": "92de2b2813bfcc99edff8e1eea2922227b86ca0d",
      "parents": [
        "a4d935bd97b9ccf40aa0ec59646612df8ed46640"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Aug 03 23:34:16 2010 +0200"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Aug 05 14:23:45 2010 -0500"
      },
      "message": "fs/dlm: Drop unnecessary null test\n\nhlist_for_each_entry binds its first argument to a non-null value, and thus\nany null test on the value of that argument is superfluous.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\niterator I;\nexpression x,E,E1,E2;\nstatement S,S1,S2;\n@@\n\nI(x,...) { \u003c...\n- (x !\u003d NULL) \u0026\u0026\n  E\n  ...\u003e }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "a4d935bd97b9ccf40aa0ec59646612df8ed46640",
      "tree": "b54f1179cb88227193fb7eeb278e82297fc68667",
      "parents": [
        "cdd854bc42b5e6c79bbbc40c6600d995ffe6e747"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Mon Jul 26 17:19:19 2010 +0800"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Aug 05 14:22:01 2010 -0500"
      },
      "message": "dlm: use genl_register_family_with_ops()\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "89d799d008710e048ee14df4f4e5441e9f4d5d50",
      "tree": "76d6d11a5168e6062d04c64ce88c9d7a7e50e583",
      "parents": [
        "99fb19d49ecbeb390e023f58867c227a15f422f7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Mar 25 14:23:13 2010 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Apr 30 14:52:51 2010 -0500"
      },
      "message": "dlm: fix ast ordering for user locks\n\nCommit 7fe2b3190b8b299409f13cf3a6f85c2bd371f8bb fixed possible\nmisordering of completion asts (casts) and blocking asts (basts)\nfor kernel locks.  This patch does the same for locks taken by\nuser space applications.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "99fb19d49ecbeb390e023f58867c227a15f422f7",
      "tree": "80560a57aa2b588ceaff2f65073c250c3bb317a1",
      "parents": [
        "be1066bbcd443a65df312fdecea7e4959adedb45"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Mar 22 15:03:54 2010 +0300"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Apr 30 14:52:28 2010 -0500"
      },
      "message": "dlm: cleanup remove unused code\n\nSmatch complains because \"lkb\" is never NULL.  Looking at it, the original\ncode actually adds the new element to the end of the list fine, so we can\njust get rid of the if condition.  This code is four years old and no one\nhas complained so it must work.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "c32da02342b7521df25fefc2ef20aee0e61cf887",
      "tree": "7e38f664fa3e13602c357d37f77d8adcf82fccc2",
      "parents": [
        "dca1d9f6d7ae428c193f32bd3e9a4ca13176648b",
        "318ae2edc3b29216abd8a2510f3f80b764f06858"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits)\n  doc: fix typo in comment explaining rb_tree usage\n  Remove fs/ntfs/ChangeLog\n  doc: fix console doc typo\n  doc: cpuset: Update the cpuset flag file\n  Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed\n  Remove drivers/parport/ChangeLog\n  Remove drivers/char/ChangeLog\n  doc: typo - Table 1-2 should refer to \"status\", not \"statm\"\n  tree-wide: fix typos \"ass?o[sc]iac?te\" -\u003e \"associate\" in comments\n  No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h\n  devres/irq: Fix devm_irq_match comment\n  Remove reference to kthread_create_on_cpu\n  tree-wide: Assorted spelling fixes\n  tree-wide: fix \u0027lenght\u0027 typo in comments and code\n  drm/kms: fix spelling in error message\n  doc: capitalization and other minor fixes in pnp doc\n  devres: typo fix s/dev/devm/\n  Remove redundant trailing semicolons from macros\n  fix typo \"definetly\" -\u003e \"definitely\" in comment\n  tree-wide: s/widht/width/g typo in comments\n  ...\n\nFix trivial conflict in Documentation/laptops/00-INDEX\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b6fa8796b2da0390e9f4115e8789a01004fc1c9b",
      "tree": "5bc3d1cea581b04d837c6cdb0fb5cd015f53f6fc",
      "parents": [
        "b4a5d4bc377e49239374f266f0a0e2772c29749c"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Feb 25 12:20:57 2010 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 26 12:15:54 2010 -0600"
      },
      "message": "dlm: use bastmode in debugfs output\n\nThe bast mode that appears in the debugfs output should be\nuseful on both master and process nodes.  lkb_highbast is\ncurrently printed, and is only useful on the master node.\nlkb_bastmode is only useful on the process node.  This\npatch sets lkb_bastmode on the master node as well, and\nuses that value in the debugfs print.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "b4a5d4bc377e49239374f266f0a0e2772c29749c",
      "tree": "dcee73fd29feb448edc4800a56214dd6266993ab",
      "parents": [
        "cf6620acc0f6fac57968aafef79ab372bdcf6157"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 17 09:41:34 2010 +0000"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 26 12:14:25 2010 -0600"
      },
      "message": "dlm: Send lockspace name with uevents\n\nAlthough it is possible to get this information from the path,\nits much easier to provide the lockspace as a seperate env\nvariable.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "cf6620acc0f6fac57968aafef79ab372bdcf6157",
      "tree": "fae381f0ffc0f13124f6138de9843140fc816cb3",
      "parents": [
        "7fe2b3190b8b299409f13cf3a6f85c2bd371f8bb"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Feb 24 11:59:23 2010 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 26 11:57:37 2010 -0600"
      },
      "message": "dlm: send reply before bast\n\nWhen the lock master processes a successful operation (request,\nconvert, cancel, or unlock), it will process the effects of the\nchange before sending the reply for the operation.  The \"effects\"\nof the operation are:\n\n- blocking callbacks (basts) for any newly granted locks\n- waiting or converting locks that can now be granted\n\nThe cast is queued on the local node when the reply from the lock\nmaster is received.  This means that a lock holder can receive a\nbast for a lock mode that is doesn\u0027t yet know has been granted.\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": "c41b20e721ea4f6f20f66a66e7f0c3c97a2ca9c2",
      "tree": "92cd1b2b1cdb871530bb07bbbcbfeaffe1170830",
      "parents": [
        "a089377f29d3af0f62f3bdc6db0c5042513fc3f3"
      ],
      "author": {
        "name": "Adam Buchbinder",
        "email": "adam.buchbinder@gmail.com",
        "time": "Fri Dec 11 16:35:39 2009 -0500"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Feb 04 11:55:45 2010 +0100"
      },
      "message": "Fix misspellings of \"truly\" in comments.\n\nSome comments misspell \"truly\"; this fixes them. No code changes.\n\nSigned-off-by: Adam Buchbinder \u003cadam.buchbinder@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "02412f49f6a7e35753d9af49d92662fb562fc9fa",
      "tree": "ecf4c573ff8944227ca04e342e97ab17493cda5c",
      "parents": [
        "4515c3069da5bfb6f08dbfca499464b4cbdfcb50",
        "573c24c4af6664ffcd9aa7ba617a35fde2b95534"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 10 09:33:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 10 09:33:59 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: always use GFP_NOFS\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "573c24c4af6664ffcd9aa7ba617a35fde2b95534",
      "tree": "9222c0c8921fda5b842c2d1007d911d47bd4fe7c",
      "parents": [
        "a8a8a669ea13d792296737505adc43ccacf3a648"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Nov 30 16:34:43 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Nov 30 16:34:43 2009 -0600"
      },
      "message": "dlm: always use GFP_NOFS\n\nReplace all GFP_KERNEL and ls_allocation with GFP_NOFS.\nls_allocation would be GFP_KERNEL for userland lockspaces\nand GFP_NOFS for file system lockspaces.\n\nIt was discovered that any lockspaces on the system can\naffect all others by triggering memory reclaim in the\nfile system which could in turn call back into the dlm\nto acquire locks, deadlocking dlm threads that were\nshared by all lockspaces, like dlm_recv.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "6861f350785bf476c2d4e3b9cb69ee36b78df2fc",
      "tree": "99cb1eb3cb5ac2084077fae9eec7e1f3e9d2cdc5",
      "parents": [
        "04bedd79a7037ee7af816b06c60c738144475c4a"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Sep 24 15:58:23 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Sep 30 12:19:44 2009 -0500"
      },
      "message": "dlm: fix socket fd translation\n\nThe code to set up sctp sockets was not using the sockfd_lookup()\nand sockfd_put() routines to translate an fd to a socket.  The\ndirect fget and fput calls were resulting in error messages from\nalloc_fd().\n\nAlso clean up two log messages and remove a third, related to\nsetting up sctp associations.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "04bedd79a7037ee7af816b06c60c738144475c4a",
      "tree": "e68657f25eda860333a5dc37eb64181e1c686f35",
      "parents": [
        "9c1fe834c1bd7725b411055c66886b64c928083d"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Sep 18 14:31:47 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Sep 30 12:19:44 2009 -0500"
      },
      "message": "dlm: fix lowcomms_connect_node for sctp\n\nThe recently added dlm_lowcomms_connect_node() from\n391fbdc5d527149578490db2f1619951d91f3561 does not work\nwhen using SCTP instead of TCP.  The sctp connection code\nhas nothing to do without data to send.  Check for no data\nin the sctp connection code and do nothing instead of\ntriggering a BUG.  Also have connect_node() do nothing\nwhen the protocol is sctp.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ce00289875a853280985aee671258795b77e089",
      "tree": "c88e4ec62cad3e83dadb49dddbcde81a2808a3c1",
      "parents": [
        "2511817cf9b1cf2506f47e20bb128e2da231c150",
        "1329e3f2c898cfabb6ed236d3fb8c1725197af53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:19:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:19:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: use kernel_sendpage\n  dlm: fix connection close handling\n  dlm: fix double-release of socket in error exit path\n"
    },
    {
      "commit": "1329e3f2c898cfabb6ed236d3fb8c1725197af53",
      "tree": "f4ca0178fb5f3f874e0493ac67fb196d326a40d7",
      "parents": [
        "063c4c99630c0b06afad080d2a18bda64172c1a2"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Aug 24 13:18:04 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Aug 24 13:18:04 2009 -0500"
      },
      "message": "dlm: use kernel_sendpage\n\nUsing kernel_sendpage() is cleaner and safer than following\nsock-\u003eops ourselves.\n\nSigned-off-by: Paolo Bonzini \u003cbonzini@gnu.org\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "063c4c99630c0b06afad080d2a18bda64172c1a2",
      "tree": "5ceca753d0366f9af6e2afbc9151494a6cfcac7d",
      "parents": [
        "b5711b8e5a437ca7d35321d19de568b4f76a7739"
      ],
      "author": {
        "name": "Lars Marowsky-Bree",
        "email": "lmb@suse.de",
        "time": "Tue Aug 11 16:18:23 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Aug 24 13:13:56 2009 -0500"
      },
      "message": "dlm: fix connection close handling\n\nClosing a connection to a node can create problems if there are\noutstanding messages for that node.  The problems include dlm_send\nspinning attempting to reconnect, or BUG from tcp_connect_to_sock()\nattempting to use a partially closed connection.\n\nTo cleanly close a connection, we now first attempt to send any pending\nmessages, cancel any remaining workqueue work, and flag the connection\nas closed to avoid reconnect attempts.\n\nSigned-off-by: Lars Marowsky-Bree \u003clmb@suse.de\u003e\nSigned-off-by: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "b5711b8e5a437ca7d35321d19de568b4f76a7739",
      "tree": "945c9f712833ed2810e3179ab626fb974e438996",
      "parents": [
        "df4ecf1524c7793de3121b2d4e5fc6bcc0da3bfb"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "cdahlin@redhat.com",
        "time": "Tue Jul 28 12:29:05 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Aug 18 15:09:24 2009 -0500"
      },
      "message": "dlm: fix double-release of socket in error exit path\n\nThe last correction to the tcp_connect_to_sock error exit path,\ncommit a89d63a159b1ba5833be2bef00adf8ad8caac8be, can free an already\nfreed socket, due to collision with a previous (incomplete) attempt\nto fix the same issue, commit 311f6fc77c51926dbdfbeab0a5d88d70f01fa3f4.\n\nSigned-off-by: Casey Dahlin \u003ccdahlin@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "aa11d958d1a6572eda08214d7c6a735804fe48a5",
      "tree": "d025b05270ad1e010660d17eeadc6ac3c1abbd7d",
      "parents": [
        "07f6642ee9418e962e54cbc07471cfe2e559c568",
        "9799218ae36910af50f002a5db1802d576fffb43"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 12 17:44:53 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 12 17:44:53 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tarch/microblaze/include/asm/socket.h\n"
    },
    {
      "commit": "a89d63a159b1ba5833be2bef00adf8ad8caac8be",
      "tree": "520fa4131a549d1956c2a938e8e5a682e1ef5dab",
      "parents": [
        "c78a87d0a1fc885dfdbe21fd5e07787691dfb068"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "cdahlin@redhat.com",
        "time": "Tue Jul 14 12:17:51 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Jul 14 12:28:43 2009 -0500"
      },
      "message": "dlm: free socket in error exit path\n\nIn the tcp_connect_to_sock() error exit path, the socket\nallocated at the top of the function was not being freed.\n\nSigned-off-by: Casey Dahlin \u003ccdahlin@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "134e63756d5f3d0f7604dfcca847b09d1b14fd66",
      "tree": "d2b5eab085d90cde0a4c0136a118800ca72b76ad",
      "parents": [
        "11a28d373ed2539a110d56419457e2e7db221ac7"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 10 09:51:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 12 14:03:27 2009 -0700"
      },
      "message": "genetlink: make netns aware\n\nThis makes generic netlink network namespace aware. No\ngeneric netlink families except for the controller family\nare made namespace aware, they need to be checked one by\none and then set the family-\u003enetnsok member to true.\n\nA new function genlmsg_multicast_netns() is introduced to\nallow sending a multicast message in a given namespace,\nfor example when it applies to an object that lives in\nthat namespace, a new function genlmsg_multicast_allns()\nto send a message to all network namespaces (for objects\nthat do not have an associated netns).\n\nThe function genlmsg_multicast() is changed to multicast\nthe message in just init_net, which is currently correct\nfor all generic netlink families since they only work in\ninit_net right now. Some will later want to work in all\nnet namespaces because they do not care about the netns\nat all -- those will have to be converted to use one of\nthe new functions genlmsg_multicast_allns() or\ngenlmsg_multicast_netns() whenever they are made netns\naware in some way.\n\nAfter this patch families can easily decide whether or\nnot they should be available in all net namespaces. Many\ngenl families us it for objects not related to networking\nand should therefore be available in all namespaces, but\nthat will have to be done on a per family basis.\n\nNote that this doesn\u0027t touch on the checkpoint/restart\nproblem where network namespaces could be used, genl\nfamilies and multicast groups are numbered globally and\nI see no easy way of changing that, especially since it\nmust be possible to multicast to all network namespaces\nfor those families that do not care about netns.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c78a87d0a1fc885dfdbe21fd5e07787691dfb068",
      "tree": "73f6056f87cd9183e04f3b9f6a4245876cf0cb23",
      "parents": [
        "a566a6b11c86147fe9fc9db7ab15f9eecca3e862"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jun 18 13:20:24 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jun 18 13:42:42 2009 -0500"
      },
      "message": "dlm: fix plock use-after-free\n\nFix a regression from the original addition of nfs lock support\n586759f03e2e9031ac5589912a51a909ed53c30a.  When a synchronous\n(non-nfs) plock completes, the waiting thread will wake up and\nfree the op struct.  This races with the user thread in\ndev_write() which goes on to read the op\u0027s callback field to\ncheck if the lock is async and needs a callback.  This check\ncan happen on the freed op.  The fix is to note the callback\nvalue before the op can be freed.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "a566a6b11c86147fe9fc9db7ab15f9eecca3e862",
      "tree": "3583e7e0ac8d557610df16054fd96df98062edc5",
      "parents": [
        "65795efbd380a832ae508b04dba8f8e53f0b84d9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 15 08:26:48 2009 +0100"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jun 17 11:31:32 2009 -0500"
      },
      "message": "dlm: Fix uninitialised variable warning in lock.c\n\n  CC [M]  fs/dlm/lock.o\nfs/dlm/lock.c: In function ‘find_rsb’:\nfs/dlm/lock.c:438: warning: ‘r’ may be used uninitialized in this function\n\nSince r is used on the error path to set r_ret, set it to NULL.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "748285ccf7ea76d3d76d0d5f2945ad6fb91f5329",
      "tree": "aeb56a0e18c2f54acccb65e5b6e8ac63f53dfc44",
      "parents": [
        "391fbdc5d527149578490db2f1619951d91f3561"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri May 15 10:50:57 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri May 15 11:24:59 2009 -0500"
      },
      "message": "dlm: use more NOFS allocation\n\nChange some GFP_KERNEL allocations to use either GFP_NOFS or\nls_allocation (when available) which the fs sets to GFP_NOFS.\nThe point is to prevent allocations from going back into the\ncluster fs in places where that might lead to deadlock.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "391fbdc5d527149578490db2f1619951d91f3561",
      "tree": "98b84ba8cd459293a232fd148cef0886f976bf19",
      "parents": [
        "8511a2728ab82cab398e39d019f5cf1246021c1c"
      ],
      "author": {
        "name": "Christine Caulfield",
        "email": "ccaulfie@redhat.com",
        "time": "Thu May 07 10:54:16 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri May 15 09:34:12 2009 -0500"
      },
      "message": "dlm: connect to nodes earlier\n\nMake network connections to other nodes earlier, in the context of\ndlm_recoverd.  This avoids connecting to nodes from dlm_send where we\ntry to avoid allocations which could possibly deadlock if memory reclaim\ngoes into the cluster fs which may try to do a dlm operation.\n\nSigned-off-by: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "8511a2728ab82cab398e39d019f5cf1246021c1c",
      "tree": "c1a99f292e9e56fe05d174be771f00a78c66a9b7",
      "parents": [
        "08ce4c91e44d51bb6c946f2756825a462d53c545"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Apr 08 15:38:43 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu May 07 10:14:42 2009 -0500"
      },
      "message": "dlm: fix use count with multiple joins\n\nWhen a lockspace was joined multiple times, the global dlm\nuse count was incremented when it should not have been.  This\ncaused the global dlm threads to not be stopped when all\nlockspaces were eventually be removed.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "08ce4c91e44d51bb6c946f2756825a462d53c545",
      "tree": "265ece7e5f8848087ebe0c2d986234195eb5f09e",
      "parents": [
        "413f81eba35d6ede9289b0c8a920c013a84fac71"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Tue Apr 07 23:40:39 2009 +0200"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu May 07 10:14:26 2009 -0500"
      },
      "message": "dlm: Make name input parameter of {,dlm_}new_lockspace() const\n\n| fs/gfs2/lock_dlm.c:207: warning: passing argument 1 of \u0027dlm_new_lockspace\u0027 discards qualifiers from pointer target type\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "1fecb1c4b62881e3689ba2dcf93072ae301b597c",
      "tree": "bd0a111ea40bfaa0697e7b0c341660cd970a23a3",
      "parents": [
        "a536e38125fe5da8ed49690f30c30a8f651cf1f5"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Mar 04 11:17:23 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Mar 11 12:23:59 2009 -0500"
      },
      "message": "dlm: fix length calculation in compat code\n\nUsing offsetof() to calculate name length does not work because\nit does not produce consistent results with with structure packing.\nThis caused memcpy to corrupt memory by copying 4 extra bytes off\nthe end of the buffer on 64 bit kernels with 32 bit userspace\n(the only case where this 32/64 compat code is used).\n\nThe fix is to calculate name length directly from the start instead\nof trying to derive it later using count and offsetof.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "a536e38125fe5da8ed49690f30c30a8f651cf1f5",
      "tree": "c63ef3e58e10fbe23366ba557ceca00f69def547",
      "parents": [
        "43279e5376017c40b4be9af5bc79cbb4ef6f53d7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 27 15:23:28 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Mar 11 12:23:58 2009 -0500"
      },
      "message": "dlm: ignore cancel on granted lock\n\nReturn immediately from dlm_unlock(CANCEL) if the lock is\ngranted and not being converted; there\u0027s nothing to cancel.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "43279e5376017c40b4be9af5bc79cbb4ef6f53d7",
      "tree": "69c2c942ade01c891a47e01696e90f04e3cf94da",
      "parents": [
        "5e9ccc372dc855900c4a75b21286038938e288c7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 28 14:37:54 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Mar 11 12:23:39 2009 -0500"
      },
      "message": "dlm: clear defunct cancel state\n\nWhen a conversion completes successfully and finds that a cancel\nof the convert is still in progress (which is now a moot point),\npreemptively clear the state associated with outstanding cancel.\nThat state could cause a subsequent conversion to be ignored.\n\nAlso, improve the consistency and content of error and debug\nmessages in this area.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "5e9ccc372dc855900c4a75b21286038938e288c7",
      "tree": "323ac103ab37ba5adfa3dc66ff90ec03c77b7517",
      "parents": [
        "2cf12c0bf261e19d9641d7b8aa220e2651a03289"
      ],
      "author": {
        "name": "Christine Caulfield",
        "email": "ccaulfie@redhat.com",
        "time": "Wed Jan 28 12:57:40 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Mar 11 12:20:58 2009 -0500"
      },
      "message": "dlm: replace idr with hash table for connections\n\nInteger nodeids can be too large for the idr code; use a hash\ntable instead.\n\nSigned-off-by: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "2cf12c0bf261e19d9641d7b8aa220e2651a03289",
      "tree": "352b4de0a7c30ccb390b35c41fd6cfae0fc89434",
      "parents": [
        "44ad532b3277f0cae55bfe0625d3140cf73af450"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 22 13:26:47 2009 -0800"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 28 12:56:07 2009 -0600"
      },
      "message": "dlm: comment typo fixes\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "44ad532b3277f0cae55bfe0625d3140cf73af450",
      "tree": "7a5e7a9082c0be3a717e95fca9b890ec82345d6d",
      "parents": [
        "305a47b17c6efcc0e7b67b0bd41e2c12b7af758b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 22 13:24:49 2009 -0800"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 28 12:56:02 2009 -0600"
      },
      "message": "dlm: use ipv6_addr_copy\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "305a47b17c6efcc0e7b67b0bd41e2c12b7af758b",
      "tree": "610c0b2642815221d57f39371d854d4751596dd5",
      "parents": [
        "152a649b647a8ef47bb74ff9e11850fa6001bedc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 16 16:21:12 2009 +0000"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 28 12:55:55 2009 -0600"
      },
      "message": "dlm: Change rwlock which is only used in write mode to a spinlock\n\nThe ls_dirtbl[].lock was an rwlock, but since it was only used in write\nmode a spinlock will suffice.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "20d5a39929232a715f29e6cb7e3f0d0c790f41eb",
      "tree": "6662d2a65f470526a8d6ec591b8429a2ca6024fb",
      "parents": [
        "24179f488092267c9a033d7e25ce7a58af50ff79"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jan 21 11:34:50 2009 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 21 15:28:45 2009 -0600"
      },
      "message": "dlm: initialize file_lock struct in GETLK before copying conflicting lock\n\ndlm_posix_get fills out the relevant fields in the file_lock before\nreturning when there is a lock conflict, but doesn\u0027t clean out any of\nthe other fields in the file_lock.\n\nWhen nfsd does a NFSv4 lockt call, it sets the fl_lmops to\nnfsd_posix_mng_ops before calling the lower fs. When the lock comes back\nafter testing a lock on GFS2, it still has that field set. This confuses\nnfsd into thinking that the file_lock is a nfsd4 lock.\n\nFix this by making DLM reinitialize the file_lock before copying the\nfields from the conflicting lock.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "24179f488092267c9a033d7e25ce7a58af50ff79",
      "tree": "a4f4fc6a038ba8240350a4b47d9a1f405790e78f",
      "parents": [
        "f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 19 13:13:33 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 21 15:28:45 2009 -0600"
      },
      "message": "dlm: fix plock notify callback to lockd\n\nWe should use the original copy of the file_lock, fl, instead\nof the copy, flc in the lockd notify callback.  The range in flc has\nbeen modified by posix_lock_file(), so it will not match a copy of the\nlock in lockd.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "c7be761a8163d2f1ac0b606c21e4316b7abc5af7",
      "tree": "1687373b56379c1c310f43b1c05ac486c67dec48",
      "parents": [
        "892c4467e335e9050c95e0d8409c136c4dadaca2"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 07 16:50:41 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jan 08 15:12:39 2009 -0600"
      },
      "message": "dlm: change rsbtbl rwlock to spinlock\n\nThe rwlock is almost always used in write mode, so there\u0027s no reason\nto not use a spinlock instead.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "892c4467e335e9050c95e0d8409c136c4dadaca2",
      "tree": "aa5fda6f6f6db529212980def510edf8810debfc",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 07 16:48:52 2009 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Jan 08 15:12:31 2009 -0600"
      },
      "message": "dlm: fix seq_file usage in debugfs lock dump\n\nThe old code would leak iterators and leave reference counts on\nrsbs because it was ignoring the \"stop\" seq callback.  The code\nfollowed an example that used the seq operations differently.\nThis new code is based on actually understanding how the seq\noperations work.  It also improves things by saving the hash bucket\nin the position to avoid cycling through completed buckets in start.\n\nSiged-off-by: Davd Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "7d8a804c594b61a05c698126165b5dc417d94a0f",
      "tree": "5718ed900d1a8aa7d85eaa02dc27fda8230a688e",
      "parents": [
        "c58bd34d00e04df9a0691732086cf8102b20d907",
        "722d74219ea21223c74e5e894b0afcc5e4ca75a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:02:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:02:09 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: fs/dlm/ast.c: fix warning\n  dlm: add new debugfs entry\n  dlm: add time stamp of blocking callback\n  dlm: change lock time stamping\n  dlm: improve how bast mode handling\n  dlm: remove extra blocking callback check\n  dlm: replace schedule with cond_resched\n  dlm: remove kmap/kunmap\n  dlm: trivial annotation of be16 value\n  dlm: fix up memory allocation flags\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": "d022509d1c54be4918e7fc8f1195ee8c392e9a57",
      "tree": "be27db04228d30674c21f6b550b78c5fb4bd2672",
      "parents": [
        "e3a84ad495d1fddb542e0922160f0194a1361950"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 16 14:53:23 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:18:51 2008 -0600"
      },
      "message": "dlm: add new debugfs entry\n\nThe new debugfs entry dumps all rsb and lkb structures, and includes\na lot more information than has been available before.  This includes\nthe new timestamps added by a previous patch for debugging callback\nissues.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "e3a84ad495d1fddb542e0922160f0194a1361950",
      "tree": "acc2d0c23440b68b1a9b9b048c2d0fae4735303b",
      "parents": [
        "eeda418d8c2646f33f24e9ad33d86c239adc6de7"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 09 14:47:29 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:18:34 2008 -0600"
      },
      "message": "dlm: add time stamp of blocking callback\n\nRecord the time the latest blocking callback was queued for\na lock.  This will be used for debugging in combination with\nlock queue timestamp changes in the previous patch.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "eeda418d8c2646f33f24e9ad33d86c239adc6de7",
      "tree": "fecfb293e62cc043d57535481913b37347006a4c",
      "parents": [
        "fd22a51bcc0b7b76fc729b02316214fd979f9fe1"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 09 14:12:21 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:18:17 2008 -0600"
      },
      "message": "dlm: change lock time stamping\n\nUse ktime instead of jiffies for timestamping lkb\u0027s.  Also stamp the\ntime on every lkb whenever it\u0027s added to a resource queue, instead of\njust stamping locks subject to timeouts.  This will allow us to use\ntimestamps more widely for debugging all locks.\n\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": "1521848cbb42935a52d11305c054b14461ad061c",
      "tree": "9cdbb97b238a909765f5e94688d70be062f7257d",
      "parents": [
        "cd8e4679bdcf9b54564f2cda2389bd0f0457e12d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 12 17:00:16 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:16:01 2008 -0600"
      },
      "message": "dlm: remove kmap/kunmap\n\nThe pages used in lowcomms are not highmem, so kmap is not necessary.\n\nCc: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "cd8e4679bdcf9b54564f2cda2389bd0f0457e12d",
      "tree": "17d737aa05c526f23d65f1eae937b10a1d1b978d",
      "parents": [
        "d6d7b702a3a1ca50f7ca2bebaa79c80425156bac"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Nov 12 16:28:43 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:15:51 2008 -0600"
      },
      "message": "dlm: trivial annotation of be16 value\n\nfs/dlm/dir.c:419:14: warning: incorrect type in assignment (different base types)\nfs/dlm/dir.c:419:14:    expected unsigned short [unsigned] [addressable] [assigned] [usertype] be_namelen\nfs/dlm/dir.c:419:14:    got restricted __be16 [usertype] \u003cnoident\u003e\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "d6d7b702a3a1ca50f7ca2bebaa79c80425156bac",
      "tree": "58399f82a48ca2a02bea7bdadc14925858a8017a",
      "parents": [
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 12 16:49:48 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Dec 23 10:15:40 2008 -0600"
      },
      "message": "dlm: fix up memory allocation flags\n\nUse ls_allocation for memory allocations, which a cluster fs sets to\nGFP_NOFS.  Use GFP_NOFS for allocations when no lockspace struct is\navailable.  Taking dlm locks needs to avoid calling back into the\ncluster fs because write-out can require taking dlm locks.\n\nCc: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "180b65df7ba1e700e28aabfbddbad84b7beebe4b",
      "tree": "2563802614050480f4b85dd7b0559b4aa7d49bc6",
      "parents": [
        "d3f644da909549a4cf0ad27541df342f75158cc0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 16:51:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 16:51:45 2008 -0800"
      },
      "message": "fix warning in fs/dlm/netlink.c\n\nthis warning:\n\n  fs/dlm/netlink.c: In function ‘dlm_timeout_warn’:\n  fs/dlm/netlink.c:131: warning: ‘send_skb’ may be used uninitialized in this function\n\ntriggers because GCC does not recognize the (correct) error flow\nbetween prepare_data() and send_skb.\n\nAnnotate it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "278afcbf4fe964230eba67f8fb8235e8b7e63ffb",
      "tree": "64bcfe585256f96f468e29af9961ddf4c2dcc71d",
      "parents": [
        "3edac25f2e8ac8c2a84904c140e1aeb434e73e75"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Nov 13 13:22:34 2008 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Nov 13 13:22:34 2008 -0600"
      },
      "message": "dlm: fix shutdown cleanup\n\nFixes a regression from commit 0f8e0d9a317406612700426fad3efab0b7bbc467,\n\"dlm: allow multiple lockspace creates\".\n\nAn extraneous \u0027else\u0027 slipped into a code fragment being moved from\nrelease_lockspace() to dlm_release_lockspace().  The result of the\nunwanted \u0027else\u0027 is that dlm threads and structures are not stopped\nand cleaned up when the final dlm lockspace is removed.  Trying to\ncreate a new lockspace again afterward will fail with\n\"kmem_cache_create: duplicate cache dlm_conn\" because the cache\nwas not previously destroyed.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "27eccf46491e1f77f9af9bbe0778122ce6882890",
      "tree": "21b5cd7aeb9ce1338a07daf13fd14695c492c89e",
      "parents": [
        "f9f2ed486256f3480e4d499ffd6bf730bc5e6fc6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Sep 05 08:42:08 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Sep 05 09:51:30 2008 -0500"
      },
      "message": "dlm: choose better identifiers\n\nsparc32:\n\nfs/dlm/config.c:397: error: expected identifier or \u0027(\u0027 before \u0027{\u0027 token\nfs/dlm/config.c: In function \u0027drop_node\u0027:\nfs/dlm/config.c:589: warning: initialization from incompatible pointer type\nfs/dlm/config.c:589: warning: initialization from incompatible pointer type\nfs/dlm/config.c: In function \u0027release_node\u0027:\nfs/dlm/config.c:601: warning: initialization from incompatible pointer type\nfs/dlm/config.c:601: warning: initialization from incompatible pointer type\nfs/dlm/config.c: In function \u0027show_node\u0027:\nfs/dlm/config.c:717: warning: initialization from incompatible pointer type\nfs/dlm/config.c:717: warning: initialization from incompatible pointer type\nfs/dlm/config.c: In function \u0027store_node\u0027:\nfs/dlm/config.c:726: warning: initialization from incompatible pointer type\nfs/dlm/config.c:726: warning: initialization from incompatible pointer type\n\nCc: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "f9f2ed486256f3480e4d499ffd6bf730bc5e6fc6",
      "tree": "adb359d0462f3d99451c15e98a8e4d7796677ddb",
      "parents": [
        "44be6fdf1056b685eb79e53e42bd2d321b085cfc"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Sep 04 12:51:20 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Sep 04 12:55:13 2008 -0500"
      },
      "message": "dlm: remove bkl\n\nBLK from recent pushdown is not needed.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "44be6fdf1056b685eb79e53e42bd2d321b085cfc",
      "tree": "3af8658e3400b5090b78f730591da8e347cde327",
      "parents": [
        "c1dcf65ffc5796bf4ff75c13f448e63b3a416fd6"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Aug 28 11:36:19 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue Sep 02 14:32:08 2008 -0500"
      },
      "message": "dlm: fix address compare\n\nCompare only the addr and port fields of sockaddr structures.\nFixes a problem with ipv6 where sin6_scope_id does not match.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "c1dcf65ffc5796bf4ff75c13f448e63b3a416fd6",
      "tree": "0283dcd832fb54758e80f7fb53f8efb331b6321c",
      "parents": [
        "dc68c7ed362a00a48290252573a8eb9f74463c3a"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Aug 18 14:03:25 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Aug 28 11:50:07 2008 -0500"
      },
      "message": "dlm: fix locking of lockspace list in dlm_scand\n\nThe dlm_scand thread needs to lock the list of lockspaces\nwhen going through it.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "dc68c7ed362a00a48290252573a8eb9f74463c3a",
      "tree": "99b8b64ea08d4990373d09e01b7bac2566ad3879",
      "parents": [
        "0f8e0d9a317406612700426fad3efab0b7bbc467"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Aug 18 11:43:30 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Aug 28 11:49:43 2008 -0500"
      },
      "message": "dlm: detect available userspace daemon\n\nIf dlm_controld (the userspace daemon that controls the setup and\nrecovery of the dlm) fails, the kernel should shut down the lockspaces\nin the kernel rather than leaving them running.  This is detected by\nhaving dlm_controld hold a misc device open while running, and if\nthe kernel detects a close while the daemon is still needed, it stops\nthe lockspaces in the kernel.\n\nKnowing that the userspace daemon isn\u0027t running also allows the\nlockspace create/remove routines to avoid waiting on the daemon\nfor join/leave operations.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    }
  ],
  "next": "0f8e0d9a317406612700426fad3efab0b7bbc467"
}
