)]}'
{
  "log": [
    {
      "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": "9a38a83880c224c6a3fd973ac9ae30a043487f0f",
      "tree": "9c0f29278f2f8490e0547bf10f57ca513958caf2",
      "parents": [
        "b85e4676344fc4d7ec5e0f62c3d3712e48bbe223"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:51 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: Remove unused fields in the nlm_reboot structure\n\nThe nlm_reboot structure is used to store information provided by the\nNSM_NOTIFY procedure.  This procedure is not specified by the NLM or NSM\nprotocols, other than to say that the procedure can be used to transmit\ninformation private to a particular NLM/NSM implementation.\n\nFor Linux, the callback arguments include the name of the monitored host,\nthe new NSM state of the host, and a 16-byte private opaque.\n\nAs a clean up, remove the unused fields and the server-side XDR logic that\ndecodes them.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b85e4676344fc4d7ec5e0f62c3d3712e48bbe223",
      "tree": "a2a6c0226ea0f72536477dff2e123245a3621d9d",
      "parents": [
        "dcff09f124f71d1d4fe61eb63c79e52f488ac22e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:44 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: Add helper to sanity check incoming NOTIFY requests\n\nlockd accepts SM_NOTIFY calls only from a privileged process on the\nlocal system.  If lockd uses an AF_INET6 listener, the sender\u0027s address\n(ie the local rpc.statd) will be the IPv6 loopback address, not the\nIPv4 loopback address.\n\nMake sure the privilege test in nlmsvc_proc_sm_notify() and\nnlm4svc_proc_sm_notify() works for both AF_INET and AF_INET6 family\naddresses by refactoring the test into a helper and adding support for\nIPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\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": "6bfbe8af4674458e6d88aef8f0136bd1b8855b11",
      "tree": "b8305ece04cebae733d619a77c3ff8fdee55e4a2",
      "parents": [
        "d7d204403b31beb83b1aefef7bd76f5209369555"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:29 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses\n\nFix up nlmsvc_lookup_host() to pass AF_INET6 source addresses to\nnlm_lookup_host().\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": "b2b5028905226f85075a408b1118857c9aa48bb3",
      "tree": "79d4e32fe7b0f4f12282282f0b0147ca2b438171",
      "parents": [
        "af558e33bedab672f5cfd3260bce7445e353fe21"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 06 13:59:23 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 16:19:19 2008 -0400"
      },
      "message": "lockd: move grace period checks to common code\n\nDo all the grace period checks in svclock.c.  This simplifies the code a\nbit, and will ease some later changes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "af558e33bedab672f5cfd3260bce7445e353fe21",
      "tree": "eb89187b6c12640a00584bd35be035ba332e4af3",
      "parents": [
        "d5b337b4877f7c4e1d761434ee04d045b0201e03"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Sep 06 12:34:25 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 16:19:02 2008 -0400"
      },
      "message": "nfsd: common grace period control\n\nRewrite grace period code to unify management of grace period across\nlockd and nfsd.  The current code has lockd and nfsd cooperate to\ncompute a grace period which is satisfactory to them both, and then\nindividually enforce it.  This creates a slight race condition, since\nthe enforcement is not coordinated.  It\u0027s also more complicated than\nnecessary.\n\nHere instead we have lockd and nfsd each inform common code when they\nenter the grace period, and when they\u0027re ready to leave the grace\nperiod, and allow normal locking only after both of them are ready to\nleave.\n\nWe also expect the locks_start_grace()/locks_end_grace() interface here\nto be simpler to build on for future cluster/high-availability work,\nwhich may require (for example) putting individual filesystems into\ngrace, or enforcing grace periods across multiple cluster nodes.\n\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": "7e9d7746bfd40121438b155023793796499497d8",
      "tree": "1b2ba4e1a32d22485bcec946ef4fb6f758067a3a",
      "parents": [
        "90151e6e4d00a3150d03d52170c246734b274622"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:35:54 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "NSM: Use sockaddr_storage for sm_addr field\n\nTo store larger addresses in the nsm_handle structure, make sm_addr a\nsockaddr_storage.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "90151e6e4d00a3150d03d52170c246734b274622",
      "tree": "bb0c7b1ab2b08ca86e87a30e0da0779a14a9b94d",
      "parents": [
        "b4ed58fd34d4def88bda59f9cc566ec9fca6a096"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:35:46 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 for h_saddr field\n\nTo store larger addresses in the nlm_host structure, make h_saddr a\nsockaddr_storage.  And let\u0027s call it something more self-explanatory:\n\"saddr\" could easily be mistaken for \"server address\".\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": "1b333c54a15a746ff6b04a684b0845a66daacef2",
      "tree": "d0a09595e34db6b176fbe5f59b60f0c45ee7cd85",
      "parents": [
        "c2526f42711d93f3455f92a82b5e586880fc44be"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 27 16:57:23 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:38 2008 -0400"
      },
      "message": "lockd: address-family independent printable addresses\n\nKnowing which source address is used for communicating with remote NLM\nservices can be helpful for debugging configuration problems on hosts\nwith multiple addresses.\n\nKeep the dprintk debugging here, but adapt it so it displays AF_INET6\naddresses properly.  There are also a couple of dprintk clean-ups as\nwell.\n\nAt some point we will aggregate the helpers that display presentation\nformat addresses into a single set of shared helpers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "367c8c7bd9a2882daad6c9cb607e1db8ef781ad4",
      "tree": "67fc93454ea9b3db1f6456cb6d6c255fe0c08178",
      "parents": [
        "560de0e65904db392e1c443c4bf5ee750573336b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 30 18:58:14 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 16:11:29 2008 -0400"
      },
      "message": "lockd: Pass \"struct sockaddr *\" to new failover-by-IP function\n\nPass a more generic socket address type to nlmsvc_unlock_all_by_ip() to\nallow for future support of IPv6.  Also provide additional sanity\nchecking in failover_unlock_ip() when constructing the server\u0027s IP\naddress.\n\nAs an added bonus, provide clean kerneldoc comments on related NLM\ninterfaces which were recently added.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6cde4de80773497d8333985b135f472eda870904",
      "tree": "f6b97fe59c31dbe750b146d785276d44223b7e4c",
      "parents": [
        "8f920d5e29f86d3425a68e1c3bc264d1f6f55112"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 15 14:26:17 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 14:53:33 2008 -0400"
      },
      "message": "lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_lock\n\nnlmsvc_lock calls nlmsvc_lookup_host to find a nlm_host struct. The\ncallers of this function, however, call nlmsvc_retrieve_args or\nnlm4svc_retrieve_args, which also return a nlm_host struct.\n\nChange nlmsvc_lock to take a host arg instead of calling\nnlmsvc_lookup_host itself and change the callers to pass a pointer to\nthe nlm_host they\u0027ve already found.\n\nSince nlmsvc_testlock() now just uses the caller\u0027s reference, we no\nlonger need to get or release it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8f920d5e29f86d3425a68e1c3bc264d1f6f55112",
      "tree": "db3054c6d5f0a2a6b239b204171e119c69ab0217",
      "parents": [
        "b0e92aae157cbf78ede7b7dd03967b49fcb2102e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 15 14:06:48 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 14:26:52 2008 -0400"
      },
      "message": "lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_testlock\n\nnlmsvc_testlock calls nlmsvc_lookup_host to find a nlm_host struct. The\ncallers of this functions, however, call nlmsvc_retrieve_args or\nnlm4svc_retrieve_args, which also return a nlm_host struct.\n\nChange nlmsvc_testlock to take a host arg instead of calling\nnlmsvc_lookup_host itself and change the callers to pass a pointer to\nthe nlm_host they\u0027ve already found.\n\nWe take a reference to host in the place where nlmsvc_testlock()\nprevious did a new lookup, so the reference counting is unchanged from\nbefore.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "17efa372cfe4d189705edf6cd4fbe283827a5dc7",
      "tree": "dcf10b96b079fff6edebbf451a32608ce6032663",
      "parents": [
        "4373ea84c84d8a96e99d3da99e813d3e36d1bd11"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 17 11:10:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:11 2008 -0400"
      },
      "message": "lockd: unlock lockd locks held for a certain filesystem\n\nAdd /proc/fs/nfsd/unlock_filesystem, which allows e.g.:\n\nshell\u003e echo /mnt/sfs1 \u003e /proc/fs/nfsd/unlock_filesystem\n\nso that a filesystem can be unmounted before allowing a peer nfsd to\ntake over nfs service for the filesystem.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nCc: Lon Hohberger  \u003clhh@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n\n fs/lockd/svcsubs.c          |   66 +++++++++++++++++++++++++++++++++++++++-----\n fs/nfsd/nfsctl.c            |   65 +++++++++++++++++++++++++++++++++++++++++++\n include/linux/lockd/lockd.h |    7 ++++\n 3 files changed, 131 insertions(+), 7 deletions(-)\n"
    },
    {
      "commit": "4373ea84c84d8a96e99d3da99e813d3e36d1bd11",
      "tree": "956fb92c4501cf2ed0f21a8942dfc31d4621711f",
      "parents": [
        "9d91cdcc0cce3186742f38e7352459b2087fbb86"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 17 11:10:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:10 2008 -0400"
      },
      "message": "lockd: unlock lockd locks associated with a given server ip\n\nFor high-availability NFS service, we generally need to be able to drop\nfile locks held on the exported filesystem before moving clients to a\nnew server.  Currently the only way to do that is by shutting down lockd\nentirely, which is often undesireable (for example, if you want to\ncontinue exporting other filesystems).\n\nThis patch allows the administrator to release all locks held by clients\naccessing the client through a given server ip address, by echoing that\naddress to a new file, /proc/fs/nfsd/unlock_ip, as in:\n\nshell\u003e echo 10.1.1.2 \u003e /proc/fs/nfsd/unlock_ip\n\nThe expected sequence of events can be:\n1. Tear down the IP address\n2. Unexport the path\n3. Write IP to /proc/fs/nfsd/unlock_ip to unlock files\n4. Signal peer to begin take-over.\n\nFor now we only support IPv4 addresses and NFSv2/v3 (NFSv4 locks are not\naffected).\n\nAlso, if unmounting the filesystem is required, we assume at step 3 that\nclients using the given server ip are the only clients holding locks on\nthe given filesystem; otherwise, an additional patch is required to\nallow revoking all locks held by lockd on a given filesystem.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nCc: Lon Hohberger  \u003clhh@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n\n fs/lockd/svcsubs.c          |   66 +++++++++++++++++++++++++++++++++++++++-----\n fs/nfsd/nfsctl.c            |   65 +++++++++++++++++++++++++++++++++++++++++++\n include/linux/lockd/lockd.h |    7 ++++\n 3 files changed, 131 insertions(+), 7 deletions(-)\n"
    },
    {
      "commit": "5e7f37a76fa5b604949020b7317962262812b2dd",
      "tree": "ceb12f296c0d19374993ac33f306180c1f8dc23a",
      "parents": [
        "536ff0f809b0f4d56e1c41e66768d330668e0a55"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 01 18:58:49 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:36 2008 -0400"
      },
      "message": "NLM/lockd: Add a reference counter to struct nlm_rqst\n\nWhen we replace the existing synchronous RPC calls with asynchronous calls,\nthe reference count will be needed in order to allow us to examine the\nresult of the RPC call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0490a54a00c14212f22c5948c8c13a4553d745bd",
      "tree": "eec4ea250a228c37c46255395724aa0c3390e838",
      "parents": [
        "2ca7754d4c96d68e1475690422a202ba5f0443d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:26:08 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:01:10 2008 -0400"
      },
      "message": "lockd: introduce new function to encode private argument in SM_MON requests\n\nClean up: refactor the encoding of the opaque 16-byte private argument in\nxdr_encode_mon().  This will be updated later to support IPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f34ec991ae0f015f5cdc51ad46c3a317ffae2466",
      "tree": "9269a796bf5a89a95c81b465d86707b813a9a9b3",
      "parents": [
        "eb18860e1385bfc7f08fcb7ba362e4a5156c8324"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:18:45 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:50 2008 -0400"
      },
      "message": "lockd: bring a few function declarations up to date\n\nClean-up: replace  __inline__ and use up-to-date function declaration\nconventions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb18860e1385bfc7f08fcb7ba362e4a5156c8324",
      "tree": "c8dff7c59d8b2d356eda454aa57c6f0e278cad6b",
      "parents": [
        "90d5b18061656993410dfd57ddb88aa5a3f34563"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:18:37 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:47 2008 -0400"
      },
      "message": "NLM: NLM protocol version numbers are u32\n\nClean up: RPC protocol version numbers are u32.  Make sure we use an\nappropriate type for NLM version numbers when calling nlm_lookup_host().\n\nEliminates a harmless mixed sign comparison in nlm_host_lookup().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48df020aa17ac95a012ff765b0086ede5996b320",
      "tree": "52aa9d1ff1e320ead499bddfe98cb05b06df1311",
      "parents": [
        "e5cff482c78a35b9f149a06aa777a1bd693864fb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Nov 01 16:56:53 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:02 2008 -0500"
      },
      "message": "NLM: Fix sign of length of NLM variable length strings\n\nAccording to The Open Group\u0027s NLM specification, NLM callers are variable\nlength strings.  XDR variable length strings use an unsigned 32 bit length.\nAnd internally, negative string lengths are not meaningful for the Linux\nNLM implementation.\n\nClean up: Make nlm_lock.len and nlm_reboot.len unsigned integers.  This\nmakes the sign of NLM string lengths consistent with the sign of xdr_netobj\nlengths.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\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": "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe",
      "tree": "bc558d58ae38aab7e615883eceef1ec253c2d646",
      "parents": [
        "9289e7f91add1c09c3ec8571a2080f7507730b8d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM/NFS: Use cached nlm_host when calling nlmclnt_proc()\n\nNow that each NFS mount point caches its own nlm_host structure, it can be\npassed to nlmclnt_proc() for each lock request.  By pinning an nlm_host for\neach mount point, we trade the overhead of looking up or creating a fresh\nnlm_host struct during every NLM procedure call for a little extra memory.\n\nWe also restrict the nlmclnt_proc symbol to limit the use of this call to\nin-tree modules.\n\nNote that nlm_lookup_host() (just removed from the client\u0027s per-request\nNLM processing) could also trigger an nlm_host garbage collection.  Now\nclient-side nlm_host garbage collection occurs only during NFS mount\nprocessing.  Since the NFS client now holds a reference on these nlm_host\nstructures, they wouldn\u0027t have been affected by garbage collection\nanyway.\n\nGiven that nlm_lookup_host() reorders the global nlm_host chain after\nevery successful lookup, and that a garbage collection could be triggered\nduring the call, we\u0027ve removed a significant amount of per-NLM-request\nCPU processing overhead.\n\nSidebar: there are only a few remaining references to the internals of\nNFS inodes in the client-side NLM code.  The only references I found are\nrelated to extracting or comparing the inode\u0027s file handle via NFS_FH().\nOne is in nlmclnt_grant(); the other is in nlmclnt_setlockargs().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.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": "9a8db97e7756119689c93c431e8b8324080f5625",
      "tree": "2e0ac28664b02c7e1c7a111c6e60ac059fd92ad8",
      "parents": [
        "12127498c8f5e479df15ee374a0932f5659df49e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Jul 17 04:04:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:07 2007 -0700"
      },
      "message": "knfsd: lockd: nfsd4: use same grace period for lockd and nfsd4\n\nBoth lockd and (in the nfsv4 case) nfsd enforce a \"grace period\" after reboot,\nduring which clients may reclaim locks from the previous server instance, but\nmay not acquire new locks.\n\nCurrently the lockd and nfsd enforce grace periods of different lengths.  This\nmay cause problems when we reboot a server with both v2/v3 and v4 clients.\nFor example, if the lockd grace period is shorter (as is likely the case),\nthen a v3 client might acquire a new lock that conflicts with a lock already\nheld (but not yet reclaimed) by a v4 client.\n\nThis patch calculates a lease time that lockd and nfsd can both use.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c98451bdb2f3e6d6cc1e03adad641e9497512b49",
      "tree": "e5e2aa60dd308fc5fa2b641d84798e6b93376949",
      "parents": [
        "d3bc9a1deb8964d774af8535814cb91bf8f6def0"
      ],
      "author": {
        "name": "Frank van Maarseveen",
        "email": "frankvm@frankvm.com",
        "time": "Mon Jul 09 22:25:29 2007 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:49 2007 -0400"
      },
      "message": "NLM: fix source address of callback to client\n\nUse the destination address of the original NLM request as the\nsource address in callbacks to the client.\n\nSigned-off-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d48c5f41000ad176df71d2d43932c6c50f938196",
      "tree": "fa513ac473e1a9cd778c35fc260db6e7e4fc3dd6",
      "parents": [
        "2e42c3e2aec6e24e58c4c601e1a33f0e9e36e314"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:21:26 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:46 2007 -0400"
      },
      "message": "NLM: Fix sparse warnings\n\n - fs/lockd/xdr4.c:140:27: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:141:27: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:432:28: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:433:28: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:587:20: warning: symbol \u0027nlm_version4\u0027 was not declared.\n   Should it be static?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d56d3c43cc97ae48586745556f5a5b564d61582",
      "tree": "28f2edc1e69b79e94d99023041dd0358861b6956",
      "parents": [
        "0f9008ef38d5a6305d94bbdd8f20d68fc75c63b6",
        "586759f03e2e9031ac5589912a51a909ed53c30a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "message": "Merge branch \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux:\n  gfs2: nfs lock support for gfs2\n  lockd: add code to handle deferred lock requests\n  lockd: always preallocate block in nlmsvc_lock()\n  lockd: handle test_lock deferrals\n  lockd: pass cookie in nlmsvc_testlock\n  lockd: handle fl_grant callbacks\n  lockd: save lock state on deferral\n  locks: add fl_grant callback for asynchronous lock return\n  nfsd4: Convert NFSv4 to new lock interface\n  locks: add lock cancel command\n  locks: allow {vfs,posix}_lock_file to return conflicting lock\n  locks: factor out generic/filesystem switch from setlock code\n  locks: factor out generic/filesystem switch from test_lock\n  locks: give posix_test_lock same interface as -\u003elock\n  locks: make -\u003elock release private data before returning in GETLK case\n  locks: create posix-to-flock helper functions\n  locks: trivial removal of unnecessary parentheses\n"
    },
    {
      "commit": "85f3f1b3f7a6197b51a2ab98d927517df730214c",
      "tree": "198465d6798b5483be2540fb6e1c0badc96d9265",
      "parents": [
        "0e4ac9d93515b27fd7635332d73eae3192ed5d4e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Nov 28 16:27:06 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:50 2007 -0400"
      },
      "message": "lockd: pass cookie in nlmsvc_testlock\n\nChange NLM internal interface to pass more information for test lock; we\nneed this to make sure the cookie information is pushed down to the place\nwhere we do request deferral, which is handled for testlock by the\nfollowing patch.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2b36f412ab6f2e5b64af9832b20eb7ef67d025b4",
      "tree": "b4a561cc944d25d96798f97d06bd78760db7afba",
      "parents": [
        "2beb6614f5e36c6165b704c167d82ef3e4ceaa0c"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Nov 28 16:26:47 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:50 2007 -0400"
      },
      "message": "lockd: save lock state on deferral\n\nWe need to keep some state for a pending asynchronous lock request, so this\npatch adds that state to struct nlm_block.\n\nThis also adds a function which defers the request, by calling\nrqstp-\u003erq_chandle.defer and storing the resulting deferred request in a\nnlm_block structure which we insert into lockd\u0027s global block list.  That\nnew function isn\u0027t called yet, so it\u0027s dead code until a later patch.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "511d2e8855a065c8251d0c140ebc353854f1929e",
      "tree": "d01c1327f1558ce46ee49dd1ba16da79e7720147",
      "parents": [
        "ca52fec152282ef73e5e882b847b36b1febbb1c6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:47:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:09 2007 -0700"
      },
      "message": "NLM: Shrink the maximum request size of NLM4 requests\n\nNLM version 4 requests estimate the call and reply header sizes rather\nconservatively, using the very maximum size allowed in the protocol even\nthough Linux always uses only a small fraction of the allowable space.\n\nReduce the size of caller and lock arguments to conserve RPC buffer space\nwhile XDR encoding NLM4 arguments.  Add compile-time checks to ensure the\nhostname string won\u0027t overflow NLM protocol maximums.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\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": "c585646dd1d98caf0a5f2e85c794c1441df6fac1",
      "tree": "244fe4b88eeaeccc449d1c936a9e0a4be27b6e0d",
      "parents": [
        "7ddae86095794cce4364740edd8463c77654a265"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:38:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:40 2006 -0800"
      },
      "message": "[PATCH] fs/lockd/host.c: make 2 functions static\n\nMake the following needlessly global functions static:\n\n - nlm_lookup_host()\n - nsm_find()\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@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": "d343fce148a4eee24a907a05c4101d3268045aae",
      "tree": "b8a110f85050b2425ce85434c01c0eac0076472b",
      "parents": [
        "4481d1038f4116f3f5c307d919e6dc815a3acbb9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 17 00:10:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:46 2006 -0700"
      },
      "message": "[PATCH] knfsd: Allow lockd to drop replies as appropriate\n\nIt is possible for the -\u003efopen callback from lockd into nfsd to find that an\nanswer cannot be given straight away (an upcall is needed) and so the request\nhas to be \u0027dropped\u0027, to be retried later.  That error status is not currently\npropagated back.\n\nSo:\n  Change nlm_fopen to return nlm error codes (rather than a private\n  protocol) and define a new nlm_drop_reply code.\n  Cause nlm_drop_reply to cause the rpc request to get rpc_drop_reply\n  when this error comes back.\n  Cause svc_process to drop a request which returns a status of\n  rpc_drop_reply.\n\n[akpm@osdl.org: fix warning storm]\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\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": "89e63ef609fb0064a47281e31e38010159c32d57",
      "tree": "fcc1953b65d29caabbb4caf25498f4f160797a70",
      "parents": [
        "bc5fea4299b8bda5f73c6f79dc35d388caf8bced"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 04 02:16:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:19 2006 -0700"
      },
      "message": "[PATCH] Convert lockd to use the newer mutex instead of the older semaphore\n\nBoth the (recently introduces) nsm_sema and the older f_sema are converted\nover.\n\nCc: 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": "460f5cac1e24e947509b6112c99c5bc9ff687b45",
      "tree": "135d63c8401c79513dd43efdd2faeae51b87c5dc",
      "parents": [
        "39be4502cb75dc26007fe1659735b26c8e63fcc6"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:18 2006 -0700"
      },
      "message": "[PATCH] knfsd: export nsm_local_state to user space via sysctl\n\nEvery NLM call includes the client\u0027s NSM state.  Currently, the Linux client\nalways reports 0 - which seems not to cause any problems, but is not what the\nprotocol says.\n\nThis patch exposes the kernel\u0027s internal variable to user space via a sysctl,\nwhich can be set at system boot time by statd.\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": "39be4502cb75dc26007fe1659735b26c8e63fcc6",
      "tree": "0f4c6bf14f8a975178b3192bfc9ba942da56619f",
      "parents": [
        "031d869d0e0be18cfe35526be5608225b8f0a7be"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:18 2006 -0700"
      },
      "message": "[PATCH] knfsd: match GRANTED_RES replies using cookies\n\nWhen we send a GRANTED_MSG call, we current copy the NLM cookie provided in\nthe original LOCK call - because in 1996, some broken clients seemed to rely\non this bug.  However, this means the cookies are not unique, so that when the\nclient\u0027s GRANTED_RES message comes back, we cannot simply match it based on\nthe cookie, but have to use the client\u0027s IP address in addition.  Which breaks\nwhen you have a multi-homed NFS client.\n\nThe X/Open spec explicitly mentions that clients should not expect the same\ncookie; so one may hope that any clients that were broken in 1996 have either\nbeen fixed or rendered obsolete.\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": "031d869d0e0be18cfe35526be5608225b8f0a7be",
      "tree": "b9b8445bec58d268feaa2efb61da5133ffcc2093",
      "parents": [
        "abd1f50094cad9dff6d68ada98b495549f52fc30"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: make nlmclnt_next_cookie SMP safe\n\nThe way we incremented the NLM cookie in nlmclnt_next_cookie was not thread\nsafe.  This patch changes the counter to an atomic_t\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": "abd1f50094cad9dff6d68ada98b495549f52fc30",
      "tree": "dd738067aa90af1cb4613a7c711ee426ff5f8ae9",
      "parents": [
        "350fce8dbf43f7d441b77366851c9ce3cd28d6dc"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: optionally use hostnames for identifying peers\n\nThis patch adds the nsm_use_hostnames sysctl and module param.  If set, lockd\nwill use the client\u0027s name (as given in the NLM arguments) to find the NSM\nhandle.  This makes recovery work when the NFS peer is multi-homed, and the\nreboot notification arrives from a different IP than the original lock calls.\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": "350fce8dbf43f7d441b77366851c9ce3cd28d6dc",
      "tree": "a47f7e875bb9c06b93df30b84de9ca97d66740b2",
      "parents": [
        "c53c1bb94f30cecee79ca0a8e9977640338283be"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 04 02:16:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: simplify nlmsvc_invalidate_all\n\nAs a result of previous patches, the loop in nlmsvc_invalidate_all just sets\nh_expires for all client/hosts to 0 (though does it in a very complicated\nway).\n\nThis was possibly meant to trigger early garbage collection but half the time\n\u00270\u0027 is in the future and so it infact delays garbage collection.\n\nPre-aging the \u0027hosts\u0027 is not really needed at this point anyway so we throw\nout the loop and nlm_find_client which is no longer needed.\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": "f2af793db02d2c2f677bdb5bf8e0efdcbf9c0256",
      "tree": "2daa40a1a128905ff514df995903d8ef8d692b04",
      "parents": [
        "07ba80635117c136714084e019375aa508365375"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:59 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_traverse_* more flexible\n\nThis patch makes nlm_traverse{locks,blocks,shares} and friends use a function\npointer rather than a \"action\" enum.\n\nThis function pointer is given two nlm_hosts (one given by the caller, the\nother taken from the lock/block/share currently visited), and is free to do\nwith them as it wants.  If it returns a non-zero value, the lockd/block/share\nis released.\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": "07ba80635117c136714084e019375aa508365375",
      "tree": "06160152e4b9c137669a5c833366858f72601895",
      "parents": [
        "68a2d76cea4234bc027df23085d9df4f2171f7fc"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: change nlm_file to use a hlist\n\nThis changes struct nlm_file and the nlm_files hash table to use a hlist\ninstead of the home-grown lists.\n\nThis allows us to remove f_hash which was only used to find the right hash\nchain to delete an entry from.\n\nIt also increases the size of the nlm_files hash table from 32 to 128.\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": "68a2d76cea4234bc027df23085d9df4f2171f7fc",
      "tree": "79a595aaebb198f3692e9187d0284bc4ac18f469",
      "parents": [
        "0cea32761a2f954c6d42ca79d7d1e6b9663b1e4a"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: Change list of blocked list to list_node\n\nThis patch changes the nlm_blocked list to use a list_node instead of\nhomegrown linked list handling.\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": "0cea32761a2f954c6d42ca79d7d1e6b9663b1e4a",
      "tree": "4e98cf7e8e4c353e9cfc58a71a16d34c521a46a3",
      "parents": [
        "9502c52259f7038b6c1e31532e22884716a56b1a"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:56 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 the hash chains use a hlist_node\n\nGet rid of the home-grown singly linked lists for the nlm_host hash table.\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": "9502c52259f7038b6c1e31532e22884716a56b1a",
      "tree": "234b6eef6ed6d58038d8433216e8549c9e23028e",
      "parents": [
        "5c8dd29ca7fc7483690cef4306549742d534f2a2"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:56 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 the nsm upcalls use the nsm_handle\n\nThis converts the statd upcalls to use the nsm_handle\n\nThis means that we only register each host once with statd, rather than\nregistering each host/vers/protocol triple.\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": "db4e4c9a9e741ee812e1febf5e386d6a24218a71",
      "tree": "92e59fba30edbf5e10908eb2952928a5e2a29adf",
      "parents": [
        "cf712c24d72341effcfd28330b83b49f77cb627b"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:16 2006 -0700"
      },
      "message": "[PATCH] knfsd: when looking up a lockd host, pass hostname \u0026 length\n\nThis patch adds the peer\u0027s hostname (and name length) to all calls to\nnlm*_lookup_host functions.  A subsequent patch will make use of these (is\nrequested by a sysctl).\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": "cf712c24d72341effcfd28330b83b49f77cb627b",
      "tree": "88fcb932f3c85d83601e45473bee2c99a22ba9c2",
      "parents": [
        "977faf392fc898407554bbe7338d57b29e3660cf"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:16 2006 -0700"
      },
      "message": "[PATCH] knfsd: consolidate common code for statd-\u003elockd notification\n\nCommon code from nlm4svc_proc_sm_notify and nlmsvc_proc_sm_notify is moved\ninto a new nlm_host_rebooted.\n\nThis is in preparation of a patch that will change the reboot notification\nhandling entirely.\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": "f30c2269544bffc7bf1b0d7c0abe5be1be83b8cb",
      "tree": "2f6140d8a555af6a133690ed6b42599e78a43c54",
      "parents": [
        "670e9f34ee3c7e052514c85014d2fdd99b672cdc"
      ],
      "author": {
        "name": "Uwe Zeisberger",
        "email": "Uwe_Zeisberger@digi.com",
        "time": "Tue Oct 03 23:01:26 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 23:01:26 2006 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Zeisberger \u003cUwe_Zeisberger@digi.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "e9ff3990f08e9a0c2839cc22808b01732ea5b3e4",
      "tree": "c638a7b89f0c5e8adc410316d06ca1de8b8dabee",
      "parents": [
        "0bdd7aab7f0ecd5d337910816aa058c18398628e"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:21 2006 -0700"
      },
      "message": "[PATCH] namespaces: utsname: switch to using uts namespaces\n\nReplace references to system_utsname to the per-process uts namespace\nwhere appropriate.  This includes things like uname.\n\nChanges: Per Eric Biederman\u0027s comments, use the per-process uts namespace\n\tfor ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c\n\n[jdike@addtoit.com: UML fix]\n[clg@fr.ibm.com: cleanup]\n[akpm@osdl.org: build fix]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\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": "f3d43c769d14b7065da7f62ec468b1fcb8cd6e06",
      "tree": "bcecb5319c7395bec95a0ebbb730b3c293d7cceb",
      "parents": [
        "e4e20512cfe0bacec0764b4925889d1fa94644f9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu Aug 03 15:07:47 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 03 16:56:02 2006 -0400"
      },
      "message": "NLM/lockd: remove b_done\n\nWe never actually set the b_done field any more; it\u0027s always zero.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from af8412d4283ef91356e65e0ed9b025b376aebded commit)\n"
    },
    {
      "commit": "70ac4385a13f78bc478f26d317511893741b05bd",
      "tree": "dafc7f3018295fc4ee00339889e4f35d5b9d7743",
      "parents": [
        "d59bf96cdde5b874a57bfd1425faa45da915d0b7",
        "077e98945db7e54a9865b5f29a1f02f531eca414"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 20:46:21 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 20:46:21 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tinclude/linux/nfs_fs.h\n\nFixed up conflict with kernel header updates.\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": "5046791417dcac1ba126b77b8062af15a2f0b8e1",
      "tree": "a59f8eecd3e089046859cd4489c550df7b6b1ead",
      "parents": [
        "3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:24 2006 -0400"
      },
      "message": "NLM: sem to mutex conversion\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa",
      "tree": "fb72cf27eb4ede283503f7b615437288c62b858d",
      "parents": [
        "81039f1f204a0fd2952112a240284e114f1a25e6"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Jun 09 09:40:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:20 2006 -0400"
      },
      "message": "locks.c: add the fl_owner to nlm_compare_locks\n\nAdd the fl_owner to NLM compare locks. Since two different client can\npresent the same pid to the server it is not enough to distinguish locks\nfrom different clients. The fl_owner field is a pointer to the struct\nnlm_host which is unique for each client.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "5f12191bc000ea31970339a5f54c11087506711c",
      "tree": "073d24a7ccd22ddf9a3f16b488ef1d2f989842b9",
      "parents": [
        "f3ee439f43381e45b191cf721b4a51d41f33301f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 23:24:25 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 23:24:25 2006 -0500"
      },
      "message": "LOCKD: Make nlmsvc_traverse_shares return void\n\nThe nlmsvc_traverse_shares return value is always zero, hence useless.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3ee439f43381e45b191cf721b4a51d41f33301f",
      "tree": "1ac11992c5ec5669c0d6ed68a9881dd51a01220f",
      "parents": [
        "eaa82edf20d738a7ae31f4b0a5f72f64c14a58df"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 23:24:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 23:24:13 2006 -0500"
      },
      "message": "LOCKD: nlmsvc_traverse_blocks return is unused\n\nNote that we never return non-zero.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d47166244860eb5dfdb12ee4703968beef8a0db2",
      "tree": "423a78e1aefc84b13800e4e257bee30ac4bbcb75",
      "parents": [
        "92737230dd3f1478033819d4bc20339f8da852da"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "message": "lockd: Add helper for *_RES callbacks\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "92737230dd3f1478033819d4bc20339f8da852da",
      "tree": "27bc7804a077a29b7614c698bb02632dc4ce228e",
      "parents": [
        "e4cd038a45a46ffbe06a1a72f3f15246e5b041ca"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "message": "NLM: Add nlmclnt_release_call\n\nAdd a helper function to simplify the freeing of NLM client requests.\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": "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": "5e1abf8cb713a0b94f5a400c7b9b797990cd9dec",
      "tree": "717a5eb95c4615855edc5f66268154cbe4118326",
      "parents": [
        "6849c0cab69f5d1a0fc7b05fa5bfb3dec53f86df"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "message": "lockd: Clean up of the server-side GRANTED code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6849c0cab69f5d1a0fc7b05fa5bfb3dec53f86df",
      "tree": "8bf595be663cc641b000846737c3ba1b6419eb6a",
      "parents": [
        "09c7938c5640a6f22bef074ca6b803dccfdb93e3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "message": "lockd: Add refcounting to struct nlm_block\n\nOtherwise, the block may disappear from underneath us when in\nnlmsvc_retry_blocked.\n\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": "aaaa99423b4b1f9cfd33ea5643d9274c25f62491",
      "tree": "dba6fb715156d9bc8fdf0ff57d9151e67fc1322c",
      "parents": [
        "16fb24252a8170799e7adf14d8fc31b817fcaf53"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:18:25 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:52:23 2006 -0500"
      },
      "message": "NLM: Ensure that nlmclnt_cancel_callback() doesn\u0027t loop forever\n\n If the server returns NLM_LCK_DENIED_NOLOCKS, we currently retry the\n entire NLM_CANCEL request. This may end up looping forever unless the\n server changes its mind (why would it do that, though?).\n\n Ensure that we limit the number of retries (to 3).\n\n See bug# 5957 in bugzilla.kernel.org.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16fb24252a8170799e7adf14d8fc31b817fcaf53",
      "tree": "25dee4880572810609ff9905707a75285dfe2770",
      "parents": [
        "3c3b809e256c417847f1a96b2f9d9f66c7fcb02c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:18:22 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:52:23 2006 -0500"
      },
      "message": "NLM: Fix arguments to NLM_CANCEL call\n\n The OpenGroup docs state that the arguments \"block\", \"exclusive\" and\n \"alock\" must exactly match the arguments for the lock call that we are\n trying to cancel.\n Currently, \"block\" is always set to false, which is wrong.\n\n See bug# 5956 on bugzilla.kernel.org.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "963d8fe53339128ee46a7701f2e36305f0ccff8c",
      "tree": "426736c70a8e05cb1d945d5c7f44ea6475edd113",
      "parents": [
        "abbcf28f23d53e8ec56a91f3528743913fa2694a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:04 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:39 2006 -0500"
      },
      "message": "RPC: Clean up RPC task structure\n\n Shrink the RPC task structure. Instead of storing separate pointers\n for task-\u003etk_exit and task-\u003etk_release, put them in a structure.\n\n Also pass the user data pointer as a parameter instead of passing it via\n task-\u003etk_calldata. This enables us to nest callbacks.\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": "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"
    }
  ]
}
