)]}'
{
  "log": [
    {
      "commit": "e3f70eadb7dddfb5a2bb9afff7abfc6ee17a29d0",
      "tree": "688a94f2c86e0d7c637609239925f94f8ee08626",
      "parents": [
        "f890edbbeff6928b7db0c6179a9036cbd4f0efbf"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Mar 29 18:54:33 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:06 2012 -0400"
      },
      "message": "Lockd: pass network namespace to creation and destruction routines\n\nv2: dereference of most probably already released nlm_host removed in\nnlmclnt_done() and reclaimer().\n\nThese routines are called from locks reclaimer() kernel thread. This thread\nworks in \"init_net\" network context and currently relays on persence on lockd\nthread and it\u0027s per-net resources. Thus lockd_up() and lockd_down() can\u0027t relay\non current network context. So let\u0027s pass corrent one into them.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "66697bfd6aec0a9ca9331c1aa544ac20324a7561",
      "tree": "f4e16eba25d9b757e256f96d0a1eca58b65a68cb",
      "parents": [
        "bb2224df5ffe4f864f5b696199b17db1ce77bc0a"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Tue Jan 31 15:08:13 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 15 00:19:48 2012 -0500"
      },
      "message": "LockD: make nlm hosts network namespace aware\n\nThis object depends on RPC client, and thus on network namespace.\nSo let\u0027s make it\u0027s allocation and lookup in network namespace context.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8ea6ecc8b0759756a766c05dc7c98c51ec90de37",
      "tree": "225f6f30c7f9a16b585dd38ee1b7f6b0646f990d",
      "parents": [
        "7db836d4a427c3c64406b00b6d8d745d6335d72a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 14 15:05:52 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 16 12:37:26 2010 -0500"
      },
      "message": "lockd: Create client-side nlm_host cache\n\nNFS clients don\u0027t need the garbage collection processing that is\nperformed on nlm_host structures.  The client picks up an nlm_host at\nmount time and holds a reference to it until the file system is\nunmounted.\n\nServers, on the other hand, don\u0027t have a precise way to tell when an\nnlm_host is no longer being used, so zero refcount nlm_host entries\nare left to expire in the cache after a time.\n\nBasically there\u0027s nothing holding a reference to an nlm_host between\nindividual server-side NLM requests, but we can\u0027t afford the expense\nof recreating them for every new NLM request from a client.  The\nnlm_host cache adds some lifetime hysteresis to entries in the cache\nso the next time a particular nlm_host is needed, it\u0027s likely to be\ndiscovered by a lookup rather than created from whole cloth.\n\nWith the new implementation, client nlm_host cache items are no longer\ngarbage collected, and are destroyed directly by a new release\nfunction specialized for client entries, nlmclnt_release_host().  They\nare cached in their own data structure, and have their own lookup\nlogic, simplified and specialized for client nlm_host entries.\n\nHowever, the client nlm_host cache still shares reboot recovery logic\nwith the server nlm_host cache.  The NSM \"peer rebooted\" downcall for\nclients and servers still come through the same RPC call.  This is a\nlegacy formal API that would be difficult to alter, and besides, the\nuser space NSM implementation can\u0027t tell the difference between peers\nthat are clients or servers.\n\nFor this reason, the client cache continues to share the\nnlm_host_mutex (and reboot recovery logic) with the server cache.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63185942c5f138c62de16b4cbc7eee494a58fea8",
      "tree": "279f1dd93cc8d7805ef52a6ebb496d71d9cc3785",
      "parents": [
        "b4687da7fc5f741af7fee9b0248a2cf2ad9c4478"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Sep 22 09:50:35 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 22 09:50:35 2010 -0400"
      },
      "message": "lockd: Remove BKL from the client\n\nThis patch removes all calls to lock_kernel() from the client.  This patch\nshould be applied after the \"fs/lock.c prepare for BKL removal\" patch submitted\nby Arnd Bergmann on September 18.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.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": "4516fc0454e7ffe2f369e80045b23c2b32155004",
      "tree": "b1068b9fbad76b5381b103fc57617373ec2ae37d",
      "parents": [
        "e9dc122166b8d863d3057a66ada04838e5548e52"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:54 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:42 2009 -0400"
      },
      "message": "sunrpc: add routine for comparing addresses\n\nlockd needs these sort of routines, as does the NFSv4 callback code.\n\nMove lockd\u0027s routines into common code and rename them so that they can\nbe used by others.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "eb16e907781a9da7f272a3e8284c26bc4e4aeb9d",
      "tree": "6651fc149d5afbcc44418fe235a2480060ce3c17",
      "parents": [
        "9355982830ad67dca35e0f3d43319f3d438f82b4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:59 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 16:01:16 2009 -0400"
      },
      "message": "lockd: Start PF_INET6 listener only if IPv6 support is available\n\nApparently a lot of people need to disable IPv6 completely on their\ndistributor-built systems, which have CONFIG_IPV6_MODULE enabled at\nbuild time.\n\nThey do this by blacklisting the ipv6.ko module.  This causes the\ncreation of the lockd service listener to fail if CONFIG_IPV6_MODULE\nis set, but the module cannot be loaded.\n\nNow that the kernel\u0027s PF_INET6 RPC listeners are completely separate\nfrom PF_INET listeners, we can always start PF_INET.  Then lockd can\ntry to start PF_INET6, but it isn\u0027t required to be available.\n\nNote this has the added benefit that NLM callbacks from AF_INET6\nservers will never come from AF_INET remotes.  We no longer have to\nworry about matching mapped IPv4 addresses to AF_INET when comparing\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57df675c60c5cf0748ddba9c7f85afde1530d74d",
      "tree": "9ee0df8d0b0b2b374bcaf66ead94886f39ac7220",
      "parents": [
        "78851e1aa4c3b796d5f0bb11b445016726302b44"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Mar 10 20:33:20 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:20 2009 -0400"
      },
      "message": "NLM: Fix GRANT callback address comparison when IPv6 is enabled\n\nThe NFS mount command may pass an AF_INET server address to lockd.  If\nlockd happens to be using a PF_INET6 listener, the nlm_cmp_addr() in\nnlmclnt_grant() will fail to match requests from that host because they\nwill all have a mapped IPv4 AF_INET6 address.\n\nAdopt the same solution used in nfs_sockaddr_match_ipaddr() for NFSv4\ncallbacks: if either address is AF_INET, map it to an AF_INET6 address\nbefore doing the comparison.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0cb2659b818eca99235e17c04291cfa9985c14f7",
      "tree": "48fc176e1e1e8a6f771e664799c26df1d72e9f69",
      "parents": [
        "50a737f86dbf99daf3a8dcbdf778a3be36bb2a39"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 23 15:21:38 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:38 2008 -0500"
      },
      "message": "NLM: allow lockd requests from an unprivileged port\n\nIf the admin has specified the \"noresvport\" option for an NFS mount\npoint, the kernel\u0027s NFS client uses an unprivileged source port for\nthe main NFS transport.  The kernel\u0027s lockd client should use an\nunprivileged port in this case as well.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "df94f000c46c055cf439f5b92807cd827557ffbc",
      "tree": "c3b224d3ae7c07a5edc3fc804a6d91c8cbdd5cc1",
      "parents": [
        "2de59872a7842143f4507832e7c1f5123c47feb7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 23 15:21:33 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:33 2008 -0500"
      },
      "message": "lockd: convert reclaimer thread to kthread interface\n\nMy understanding is that there is a push to turn the kernel_thread\ninterface into a non-exported symbol and move all kernel threads to use\nthe kthread API. This patch changes lockd to use kthread_run to spawn\nthe reclaimer thread.\n\nI\u0027ve made the assumption here that the extra module references taken\nwhen we spawn this thread are unnecessary and removed them. I\u0027ve also\nadded a KERN_ERR printk that pops if the thread can\u0027t be spawned to warn\nthe admin that the locks won\u0027t be reclaimed.\n\nIn the future, it would be nice to be able to notify userspace that\nlocks have been lost (probably by implementing SIGLOST), and adding some\ngood policies about how long we should reattempt to reclaim the locks.\n\nFinally, I removed a comment about memory leaks that I believe is\nobsolete and added a new one to clarify the result of sending a SIGKILL\nto the reclaimer thread. As best I can tell, doing so doesn\u0027t actually\ncause a memory leak.\n\nI consider this patch 2.6.29 material.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "26a414092353590ceaa5955bcb53f863d6ea7549",
      "tree": "d829a751e7f6dee7323039e6ea2340e78e5f9fd6",
      "parents": [
        "8c3916f4bdf9c8388bd70d0b399b3a43daf2087a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 17:15:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 04 17:12:27 2008 -0400"
      },
      "message": "NLM: Remove \"proto\" argument from lockd_up()\n\nClean up: Now that lockd_up() starts listeners for both transports, the\n\"proto\" argument is no longer needed.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dcff09f124f71d1d4fe61eb63c79e52f488ac22e",
      "tree": "9de34b565ee957c3d80dcd9f279b3b2bb0496ba7",
      "parents": [
        "6bfbe8af4674458e6d88aef8f0136bd1b8855b11"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:36 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: change nlmclnt_grant() to take a \"struct sockaddr *\"\n\nAdjust the signature and callers of nlmclnt_grant() to pass a \"struct\nsockaddr *\" instead of a \"struct sockaddr_in *\" in order to support IPv6\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d7d204403b31beb83b1aefef7bd76f5209369555",
      "tree": "70d63b581d4987fb12cc455f741bf21a55a7a8c3",
      "parents": [
        "88541c848746442ddff45dea05ddea6b734d88b5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:21 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:34 2008 -0400"
      },
      "message": "lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET\n\nPass a struct sockaddr * and a length to nlmclnt_lookup_host() to\naccomodate non-AF_INET family addresses.\n\nAs a side benefit, eliminate the hostname_len argument, as the hostname\nis always NUL-terminated.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "781b61a6f4ff94cb8c14cf598b547f5d5c490969",
      "tree": "166288be121563b77c3672b311bbbe2541de3bd3",
      "parents": [
        "7e9d7746bfd40121438b155023793796499497d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:36:01 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "lockd: Teach nlm_cmp_addr() to support AF_INET6 addresses\n\nUpdate the nlm_cmp_addr() helper to support AF_INET6 as well as AF_INET\naddresses.  New version takes two \"struct sockaddr *\" arguments instead of\n\"struct sockaddr_in *\" arguments.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b4ed58fd34d4def88bda59f9cc566ec9fca6a096",
      "tree": "ce377f9ec8773a26e4a967e7d73d42e99d39b0ea",
      "parents": [
        "5344b12d4f97d4a9a62d806425977a6ff64b6baf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:35:39 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "lockd: Use sockaddr_storage + length for h_addr field\n\nTo store larger addresses in the nlm_host structure, make h_addr a\nsockaddr_storage, and add an address length field.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "883bb163f84e0a54b29846c61621f52db3f27393",
      "tree": "ea11b2d1ba85cbb4422ae7ff615d6d186d709af1",
      "parents": [
        "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jan 15 16:04:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM: Introduce an arguments structure for nlmclnt_init()\n\nClean up: pass 5 arguments to nlmclnt_init() in a structure similar to the\nnew nfs_client_initdata structure.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "52c4044d00fe703eb3fb18e0d8dfd1c196eb28be",
      "tree": "e8ff891bc68ee10ebe3d067b13ba31e2deb645bb",
      "parents": [
        "86d61d8638ddf9cdf87df26c7fa69b2804425fbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:44 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:06 2008 -0500"
      },
      "message": "NLM: Introduce external nlm_host set-up and tear-down functions\n\nWe would like to remove the per-lock-operation nlm_lookup_host() call from\nnlmclnt_proc().\n\nThe new architecture pins an nlm_host structure to each NFS client\nsuperblock that has the \"lock\" mount option set.  The NFS client passes\nin the pinned nlm_host structure during each call to nlmclnt_proc().  NFS\nclient unmount processing \"puts\" the nlm_host so it can be garbage-\ncollected later.\n\nThis patch introduces externally callable NLM functions that handle\nmount-time nlm_host set up and tear-down.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "550facd138d8f6b0ca683c1e894b5cd0f381cb63",
      "tree": "da1a1c3051bcec42578068ee36425ec2b405209f",
      "parents": [
        "21051ba6259c519e20a7d575ddceb16e84ad2a5d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu May 10 22:55:07 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:44 2007 -0400"
      },
      "message": "NLM: don\u0027t use CLONE_SIGHAND in nlmclnt_recovery\n\nreclaimer() calls allow_signal() which plays with parent process\u0027s -\u003esighand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d019bcf0eb9a55c51f1c57659f923d356b4675e1",
      "tree": "06349b9f623ad6978d5cb8bec27393a7e2e1090a",
      "parents": [
        "a0f7b67ae470f3afed3f03d017fd1c29fd1b58b8"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jan 29 13:19:51 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 08:26:45 2007 -0800"
      },
      "message": "[PATCH] fs/lockd/clntlock.c: add missing newlines to dprintk\u0027s\n\nThis patch adds missing newlines to dprintk\u0027s.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8c5c045d790e7018c56f1a998a2d240b732ea3c",
      "tree": "d64de6d21d715d163244a1caeedd617955eaad5e",
      "parents": [
        "905f3ed62515f233fea09dc5ad68bbcff4903520"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Dec 13 00:35:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:52 2006 -0800"
      },
      "message": "[PATCH] lockd endianness annotations\n\nAnnotated, all places switched to keeping status net-endian.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "225a719f79fbc4d0cd9d9ebc5b2e3ac0e95845aa",
      "tree": "6ac303324b2832cd92a4ec9539162ac65f8d452d",
      "parents": [
        "a7a005fd12b84392becca311f2a20d5bf2a1b7af"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:47 2006 -0800"
      },
      "message": "[PATCH] struct path: convert lockd\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52921e02a4f4163a7b1f4b5dde71e1debc71de4a",
      "tree": "0202a8a4c8c78aed1826540fb33faf64a88837ce",
      "parents": [
        "7111c66e4e70588c9602035a4996c9cdc2087d2d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Oct 19 23:28:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:40 2006 -0700"
      },
      "message": "[PATCH] lockd endianness annotations\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ade060ee51b9b6cf18d580405dc9ab90067f69f",
      "tree": "cb4973c837192053f5e2b2a5b2e3790362849d00",
      "parents": [
        "460f5cac1e24e947509b6112c99c5bc9ff687b45"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:18 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: fix use of h_nextrebind\n\nnlmclnt_recovery would try to force a portmap rebind by setting\nhost-\u003eh_nextrebind to 0.  The right thing to do here is to set it to the\ncurrent time.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c8dd29ca7fc7483690cef4306549742d534f2a2",
      "tree": "edf51e354535448ea6b57a59358d9f28c556684c",
      "parents": [
        "f0737a39a64a9df32bb045c54e1cdf6cecdcbdd7"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: Make nlm_host_rebooted use the nsm_handle\n\nThis patch makes the SM_NOTIFY handling understand and use the nsm_handle.\n\nTo make it a bit clear what is happening:\n\n    nlmclent_prepare_reclaim and nlmclnt_finish_reclaim\n    get open-coded into \u0027reclaimer\u0027\n\nThe result is tidied up.\n\nThen some of that functionality is moved out into nlm_host_rebooted (which\ncalls nlmclnt_recovery which starts a thread which runs reclaimer).\n\nAlso host_rebooted now finds an nsm_handle rather than a host, then then\niterates over all hosts and deals with each host that shares that nsm_handle.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8dead0dbd478f35fd943f3719591e5af1ac0950d",
      "tree": "05ad7dd248263cbeecc4f3d0b4cbb3ec06c65626",
      "parents": [
        "db4e4c9a9e741ee812e1febf5e386d6a24218a71"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:16 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: introduce nsm_handle\n\nThis patch introduces the nsm_handle, which is shared by all nlm_host objects\nreferring to the same client.\n\nWith this patch applied, all nlm_hosts from the same address will share the\nsame nsm_handle.  A future patch will add sharing by name.\n\nNote: this patch changes h_name so that it is no longer guaranteed to be an IP\naddress of the host.  When the host represents an NFS server, h_name will be\nthe name passed in the mount call.  When the host represents a client, h_name\nwill be the name presented in the lock request received from the client.  A\nh_name is only used for printing informational messages, this change should\nnot be significant.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a3ae42dc312dbdffee803efaf393421b79f997a",
      "tree": "d18249c89fc1a5ab273beec1639cde769a0b6e96",
      "parents": [
        "7dcf91ec6698fe8564ad91bbe42740aacaa0d9ee"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 02 02:17:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:18 2006 -0700"
      },
      "message": "[PATCH] knfsd: Correctly handle error condition from lockd_up\n\nIf lockd_up fails - what should we expect?  Do we have to later call\nlockd_down?\n\nWell the nfs client thinks \"no\", the nfs server thinks \"yes\".  lockd thinks\n\"yes\".\n\nThe only answer that really makes sense is \"no\" !!\n\nSo:\n  Make lockd_up only increment  nlmsvc_users on success.\n  Make nfsd handle errors from lockd_up properly.\n  Make sure lockd_up(0) never fails when lockd is running\n    so that the \u0027reclaimer\u0027 call to lockd_up doesn\u0027t need to\n    be error checked.\n\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24e36663c375df577d2dcae437713481ffd6850c",
      "tree": "dd738e582b663c433eef3a53eb593a518439a285",
      "parents": [
        "bc591ccff27e6a85d3a0d6fcb16cfadcc45267a8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 02 02:17:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: be more selective in which sockets lockd listens on\n\nCurrently lockd listens on UDP always, and TCP if CONFIG_NFSD_TCP is set.\n\nHowever as lockd performs services of the client as well, this is a problem.\nIf CONFIG_NfSD_TCP is not set, and a tcp mount is used, the server will not be\nable to call back to lockd.\n\nSo:\n - add an option to lockd_up saying which protocol is needed\n - Always open sockets for which an explicit port was given, otherwise\n   only open a socket of the type required\n - Change nfsd to do one lockd_up per socket rather than one per thread.\n\nThis\n - removes the dependancy on CONFIG_NFSD_TCP\n - means that lockd may open sockets other than at startup\n - means that lockd will *not* listen on UDP if the only\n   mounts are TCP mount (and nfsd hasn\u0027t started).\n\nThe latter is the only one that concerns me at all - I don\u0027t know if this\nmight be a problem with some servers.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b7b52630deca785c4fc2bf4c53500cee066786af",
      "tree": "7f33a5b37d3ecc5598ef68a8c8fbcd4d0dee96e4",
      "parents": [
        "65800ac77e080cf159d6c1207b6886e18f22bc08"
      ],
      "author": {
        "name": "Martin Bligh",
        "email": "mbligh@mbligh.org",
        "time": "Wed Sep 27 01:51:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:19 2006 -0700"
      },
      "message": "[PATCH] add newline to nfs dprintk\n\nAdd missing \\n to dprintk\n\nSigned-off-by: Martin Bligh \u003cmbligh@google.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28df955a2ad484d602314b30183ea8496a9aa34a",
      "tree": "c62632b2a0a49df114283f10764244c1b1b5f506",
      "parents": [
        "5046791417dcac1ba126b77b8062af15a2f0b8e1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:27 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:27 2006 -0400"
      },
      "message": "NLM: Fix reclaim races\n\nCurrently it is possible for a task to remove its locks at the same time as\nthe NLM recovery thread is trying to recover them. This quickly leads to an\nOops.\nProtect the locks using an rw semaphore while they are being recovered.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a649b884637c4fdff50a6beebc3dc0e6082e048",
      "tree": "042455741f079fdbd4d33cd7da61c1c9e68db477",
      "parents": [
        "d72b7a6b26b9009b7a05117fe2e04b3a73ae4a5c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "message": "NLM: Simplify client locks\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c060b531006e0711db32a132d6ac7661594b280",
      "tree": "899f281dfec3da7e29ede2e76019b3861116714f",
      "parents": [
        "26bcbf965f857c710adafd16cf424f043006b5dd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:41 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:41 2006 -0500"
      },
      "message": "lockd: Fix Oopses due to list manipulation errors.\n\nThe patch \"stop abusing file_lock_list introduces a couple of bugs since\nthe locks may be copied and need to be removed from the lists when they are\ndestroyed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "26bcbf965f857c710adafd16cf424f043006b5dd",
      "tree": "fa3c1e4ba07ab3d1e4e61b27c7579c57fd2d5c65",
      "parents": [
        "04266473ecf5cdca242201d9f1ed890afe070fb6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "message": "lockd: stop abusing file_lock_list\n\nCurrently lockd directly access the file_lock_list from fs/locks.c.\nIt does so to mark locks granted or reclaimable.  This is very\nsuboptimal, because a) lockd needs to poke into locks.c internals, and\nb) it needs to iterate over all locks in the system for marking locks\ngranted or reclaimable.\n\nThis patch adds lists for granted and reclaimable locks to the nlm_host\nstructure instead, and adds locks to those.\n\nnlmclnt_lock:\n\tnow adds the lock to h_granted instead of setting the\n\tNFS_LCK_GRANTED, still O(1)\n\nnlmclnt_mark_reclaim:\n\tgoes away completely, replaced by a list_splice_init.\n\tComplexity reduced from O(locks in the system) to O(1)\n\nreclaimer:\n\titerates over h_reclaim now, complexity reduced from\n\tO(locks in the system) to O(locks per nlm_host)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7bab377fcb495ee2e5a1cd69d235f8d84c76e3af",
      "tree": "67f03fbc543632ccf71075af250635201b43801b",
      "parents": [
        "36943fa4b2701b9ef2d60084c85ecbe634aec252"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "message": "lockd: Don\u0027t expose the process pid to the NLM server\n\nInstead we use the nlm_lockowner-\u003epid.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ac5f9d1ce8492163dbde5d357dc5d03becf7e36",
      "tree": "3ce7f36c074e37dd565b91490582c4a4902f2b18",
      "parents": [
        "7c8903f6373f9abecf060bad53ca36bc4ac037f2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 14 13:53:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] NLM: Fix the NLM_GRANTED callback checks\n\nIf 2 threads attached to the same process are blocking on different locks on\ndifferent files (maybe even on different servers) but have the same lock\narguments (i.e.  same offset+length - actually quite common, since most\nprocesses try to lock the entire file) then the first GRANTED call that wakes\none up will also wake the other.\n\nCurrently when the NLM_GRANTED callback comes in, lockd walks the list of\nblocked locks in search of a match to the lock that the NLM server has\ngranted.  Although it checks the lock pid, start and end, it fails to check\nthe filehandle and the server address.\n\nBy checking the filehandle and server IP address, we ensure that this only\nhappens if the locks truly are referencing the same file.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b5b1f5bf9dcdb6f23abf65977a675eb4deba3c0",
      "tree": "2f7f341d38d6a8ae71ff1fefa9e48a467b34f5a1",
      "parents": [
        "48e49187753ec3b4fa84a7165c9b7a59f3875b56"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 19 17:11:25 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 19 23:12:31 2005 -0500"
      },
      "message": "NLM: Fix Oops in nlmclnt_mark_reclaim()\n\n When mixing -olock and -onolock mounts on the same client, we have to\n check that fl-\u003efl_u.nfs_fl.owner is set before dereferencing it.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ecdbf769b2cb8903e07cd482334c714d89fd1146",
      "tree": "9d02ce4daee662c2711762564662cebc521e3da3",
      "parents": [
        "4f15e2b1f4f3a56e46201714b39436c32218d547"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:31 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:42 2005 -0400"
      },
      "message": "[PATCH] NLM: fix a client-side race on blocking locks.\n\n If the lock blocks, the server may send us a GRANTED message that\n races with the reply to our LOCK request. Make sure that we catch\n the GRANTED by queueing up our request on the nlm_blocked list\n before we send off the first LOCK rpc call.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4f15e2b1f4f3a56e46201714b39436c32218d547",
      "tree": "db694827826cc80b27958f8b6eda99be44953a2c",
      "parents": [
        "80fec4c62e2cf544ac26e53f3e0d2f73df6820b9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:31 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:41 2005 -0400"
      },
      "message": "[PATCH] NLM: cleanup for blocked locks.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
