)]}'
{
  "log": [
    {
      "commit": "ba7392bb37cb12781890f45d7ddee1618e33a036",
      "tree": "4c9a6cb3b22cae407f810c214275ab107ee3fc77",
      "parents": [
        "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:55 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "SUNRPC: Add support for per-client timeout values\n\nIn order to be able to support setting the timeo and retrans parameters on\na per-mountpoint basis, we move the rpc_timeout structure into the\nrpc_clnt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a",
      "tree": "d454fdf3b5da159935ca268648d45b5d1a29027d",
      "parents": [
        "698b6d088e8a5d907596c689d5ae9109611c5b59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:54 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:58 2008 -0500"
      },
      "message": "SUNRPC: Clean up the transport timeout initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e8914c65f7f8d4e8701b8e78a12b714872ea0402",
      "tree": "54e0834fce6e8b834ad400e010e76215e7eb76e4",
      "parents": [
        "a6eaf8bdf9308b51ec84e358915fc65400029519"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:39:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:28 2008 -0500"
      },
      "message": "SUNRPC: Restrict sunrpc client exports\n\nThe sunrpc client exports are not meant to be part of any official kernel\nAPI: they can change at the drop of a hat. Mark them as internal functions\nusing EXPORT_SYMBOL_GPL.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a6eaf8bdf9308b51ec84e358915fc65400029519",
      "tree": "f704135c09272357d9e9bf2d2a39636006518c3e",
      "parents": [
        "93a44a75b97b9d8a03dd3d3f3247c3d0ec46aa4c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:39:58 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:28 2008 -0500"
      },
      "message": "SUNRPC: Move exported declarations to the function declarations\n\nDo this for all RPC client related functions and XDR functions.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62da3b24880bccd4ffc32cf8d9a7e23fab475bdd",
      "tree": "334804c6eb817bd7827f58dbe86ced455160052d",
      "parents": [
        "3ebb067d92ebe5bcfd282acf12bade891d334d07"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 18:44:20 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:27 2008 -0500"
      },
      "message": "SUNRPC: Rename xprt_disconnect()\n\nxprt_disconnect() should really only be called when the transport shutdown\nis completed, and it is time to wake up any pending tasks. Rename it to\nxprt_disconnect_done() in order to reflect the semantical change.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7272dcd31d56580dee7693c21e369fd167e137fe",
      "tree": "a69f10501069ec89d8fb7188f89e7d1d19929488",
      "parents": [
        "e06799f958bf7f9f8fae15f0c6f519953fb0257c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 18:28:53 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:26 2008 -0500"
      },
      "message": "SUNRPC: xprt_autoclose() should not call xprt_disconnect()\n\nThe transport layer should do that itself whenever appropriate.\n\nNote that the RDMA transport already assumes that it needs to call\nxprt_disconnect in xprt_rdma_close().\nFor TCP sockets, we want to call xprt_disconnect() only after the\nconnection has been closed by both ends.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "66af1e558538137080615e7ad6d1f2f80862de01",
      "tree": "f5f9680b86846d4df8312cd9bd729d6e10c7b5e8",
      "parents": [
        "ef818a28fac9bd214e676986d8301db0582b92a9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 10:18:36 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:24 2008 -0500"
      },
      "message": "SUNRPC: Fix a race in xs_tcp_state_change()\n\nWhen scheduling the autoclose RPC call, we want to ensure that we don\u0027t\nrace against the test_bit() call in xprt_clear_locked().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b24b8a247ff65c01b252025926fe564209fae4fc",
      "tree": "8a9e0ea1e24b4733d8b9433d41877659505e9da4",
      "parents": [
        "a92aa318b4b369091fd80433c80e62838db8bc1c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 23 21:20:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:35 2008 -0800"
      },
      "message": "[NET]: Convert init_timer into setup_timer\n\nMany-many code in the kernel initialized the timer-\u003efunction\nand  timer-\u003edata together with calling init_timer(timer). There\nis already a helper for this. Use it for networking code.\n\nThe patch is HUGE, but makes the code 130 lines shorter\n(98 insertions(+), 228 deletions(-)).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ba03e82b3dac41bb1c5ca29060aa44b5e44b486",
      "tree": "6ff629792f49869c3fb8b473f52e983dfa305349",
      "parents": [
        "5fe4a33430d90243ff93a77ea31e20f7557bca8a"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Nov 22 19:40:22 2007 +0800"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Nov 22 19:40:22 2007 +0800"
      },
      "message": "[SUNRPC]: Remove SPIN_LOCK_UNLOCKED\n\nSPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "4fa016eb248cac875541fa199af550a8aefa0e90",
      "tree": "2a8aad2ebc1a05174d0eacaceb671bca6b24850c",
      "parents": [
        "49c36fcc441baf6a4d698e3645d1adf28edaf57b"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:47:57 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:50 2007 -0400"
      },
      "message": "NFS/SUNRPC: support transport protocol naming\n\nTo prepare for including non-sockets-based RPC transports, select\nRPC transports by an identifier (to be used in following patches).\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3c341b0b925eee01daae2c594b81e673f659d7cd",
      "tree": "029db06dc895097b88c6765d349ce254db333bfd",
      "parents": [
        "bc25571e21e8bd053554209f5b1b228ad71e6b99"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:47:07 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:45 2007 -0400"
      },
      "message": "SUNRPC: rename the rpc_xprtsock_create structure\n\nTo prepare for including non-sockets-based RPC transports, change the\noverly suggestive name of the transport creation arguments struct.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bc25571e21e8bd053554209f5b1b228ad71e6b99",
      "tree": "4c008cc445f24c6b5501b2867b8ba7a752b5d710",
      "parents": [
        "81c098af3da7981902e9f8163aeccc2467c4ba6d"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:46:39 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:42 2007 -0400"
      },
      "message": "SUNRPC: Finish API to load RPC transport implementations dynamically\n\nAllow RPC client transport implementations to be loaded as needed, or\nas they become available from distributors or third-party vendors.\n\nNote that we leave the IP sockets implementation in sunrpc.o\npermanently, as IP functionality is always available in any\nkernel that runs NFS.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "81c098af3da7981902e9f8163aeccc2467c4ba6d",
      "tree": "b98e3c8c9e519e34abf721410de70373cedb4a9f",
      "parents": [
        "1244480976d357447aeddd3f44977586bfa0462b"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:46:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:40 2007 -0400"
      },
      "message": "SUNRPC: Provide a new API for registering transport implementations\n\nTo allow transport capabilities to be loaded dynamically, provide an API\nfor registering and unregistering the transports with the RPC client.\nEventually xprt_create_transport() will be changed to search the list of\nregistered transports when initializing a fresh transport.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1244480976d357447aeddd3f44977586bfa0462b",
      "tree": "4933d4c352e9e1b9d72f01f4968dd116244b96f6",
      "parents": [
        "4f22ccc3460ef65e9899ec271d36fc4ef795c68d"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:45:36 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:36 2007 -0400"
      },
      "message": "SUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions\n\nSUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions\n\nAs a preface to allowing arbitrary transport modules to be loaded\ndynamically, add EXPORT_SYMBOL_GPL for all generic transport functions\nthat a transport implementation might want to use.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nAcked-by: Tom Talpey \u003ctmt@netapp.com\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "96802a095171f5b35cf0e1e0d4be943e6696a253",
      "tree": "edad2ad27532dc7e380ec2fd3854d8c265a004c1",
      "parents": [
        "6f2e64d3e1f661095e274c9d9d47e3f39a6cf1c0"
      ],
      "author": {
        "name": "Frank van Maarseveen",
        "email": "frankvm@frankvm.com",
        "time": "Sun Jul 08 13:08:54 2007 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:49 2007 -0400"
      },
      "message": "SUNRPC: cleanup transport creation argument passing\n\nCleanup argument passing to functions for creating an RPC transport.\n\nSigned-off-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c1384c9c4c184543375b52a0997d06cd98145164",
      "tree": "26bb2ee42dc2fddfe1817d3066844669912adef2",
      "parents": [
        "6e5b70e9d1e712d8dad5514e0ab5240ac4b5fb57"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 14 18:00:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:31 2007 -0400"
      },
      "message": "SUNRPC: fix hang due to eventd deadlock...\n\nBrian Behlendorf writes:\n\nThe root cause of the NFS hang we were observing appears to be a rare\ndeadlock between the kernel provided usermodehelper API and the linux NFS\nclient.  The deadlock can arise because both of these services use the\ngeneric linux work queues.  The usermodehelper API run the specified user\napplication in the context of the work queue.  And NFS submits both cleanup\nand reconnect work to the generic work queue for handling.  Normally this\nis fine but a deadlock can result in the following situation.\n\n  - NFS client is in a disconnected state\n  - [events/0] runs a usermodehelper app with an NFS dependent operation,\n    this triggers an NFS reconnect.\n  - NFS reconnect happens to be submitted to [events/0] work queue.\n  - Deadlock, the [events/0] work queue will never process the\n    reconnect because it is blocked on the previous NFS dependent\n    operation which will not complete.`\n\nThe solution is simply to run reconnect requests on rpciod.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a509050bd3b8e0aa269c2241aa10d74ca7701e2f",
      "tree": "47860feb054c6c286fd10c7d19a5ed3c3efb5c32",
      "parents": [
        "c5a4dd8b7c15927a8fbff83171b57cad675a79b9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:48:04 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:12 2007 -0700"
      },
      "message": "SUNRPC: introduce rpcbind: replacement for in-kernel portmapper\n\nIntroduce a replacement for the in-kernel portmapper client that supports\nall 3 versions of the rpcbind protocol.  This code is not used yet.\n\nOriginal code by Groupe Bull updated for the latest kernel, with multiple\nbug fixes.\n\nNote that rpcb_clnt.c does not yet support registering via versions 3 and\n4 of the rpcbind protocol.  That is planned for a later patch.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c5a4dd8b7c15927a8fbff83171b57cad675a79b9",
      "tree": "2d3b1930449b31f69dc70a6e1d4e0f0532f3f118",
      "parents": [
        "2bea90d43a050bbc4021d44e59beb34f384438db"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:47:58 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:11 2007 -0700"
      },
      "message": "SUNRPC: Eliminate side effects from rpc_malloc\n\nCurrently rpc_malloc sets req-\u003erq_buffer internally.  Make this a more\ngeneric interface:  return a pointer to the new buffer (or NULL) and\nmake the caller set req-\u003erq_buffer and req-\u003erq_bufsize.  This looks much\nmore like kmalloc and eliminates the side effects.\n\nTo fix a potential deadlock, this patch also replaces GFP_NOFS with\nGFP_NOWAIT in rpc_malloc.  This prevents async RPCs from sleeping outside\nthe RPC\u0027s task scheduler while allocating their buffer.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2bea90d43a050bbc4021d44e59beb34f384438db",
      "tree": "2dd3f15bd9df537166a82777b0c95243b90b17e1",
      "parents": [
        "511d2e8855a065c8251d0c140ebc353854f1929e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:47:53 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:10 2007 -0700"
      },
      "message": "SUNRPC: RPC buffer size estimates are too large\n\nThe RPC buffer size estimation logic in net/sunrpc/clnt.c always\nsignificantly overestimates the requirements for the buffer size.\nA little instrumentation demonstrated that in fact rpc_malloc was never\nallocating the buffer from the mempool, but almost always called kmalloc.\n\nTo compute the size of the RPC buffer more precisely, split p_bufsiz into\ntwo fields; one for the argument size, and one for the result size.\n\nThen, compute the sum of the exact call and reply header sizes, and split\nthe RPC buffer precisely between the two.  That should keep almost all RPC\nbuffers within the 2KiB buffer mempool limit.\n\nAnd, we can finally be rid of RPC_SLACK_SPACE!\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "241c39b9ac4bf847013aa06cce6d4d61426a2006",
      "tree": "6455884e65288e64576555a27c06a8ee2f1f6371",
      "parents": [
        "2b82f190c81bf1524447c021df4e9ce8ef379bd5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 20 16:12:55 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Apr 20 22:56:30 2007 -0700"
      },
      "message": "RPC: Fix the TCP resend semantics for NFSv4\n\nFix a regression due to the patch \"NFS: disconnect before retrying NFSv4\nrequests over TCP\"\n\nThe assumption made in xprt_transmit() that the condition\n\t\"req-\u003erq_bytes_sent \u003d\u003d 0 and request is on the receive list\"\nshould imply that we\u0027re dealing with a retransmission is false.\nFirstly, it may simply happen that the socket send queue was full\nat the time the request was initially sent through xprt_transmit().\nSecondly, doing this for each request that was retransmitted implies\nthat we disconnect and reconnect for _every_ request that happened to\nbe retransmitted irrespective of whether or not a disconnection has\nalready occurred.\n\nFix is to move this logic into the call_status request timeout handler.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9bc125caf592b7d081021f32ce5b717efdf70c8",
      "tree": "263b7066ba22ddce21db610c0300f6eaac6f2064",
      "parents": [
        "43d78ef2ba5bec26d0315859e8324bfc0be23766",
        "ec2f9d1331f658433411c58077871e1eef4ee1b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:43:25 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:43:25 2007 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tnet/sunrpc/auth_gss/gss_krb5_crypto.c\n\tnet/sunrpc/auth_gss/gss_spkm3_token.c\n\tnet/sunrpc/clnt.c\n\nMerge with mainline and fix conflicts.\n"
    },
    {
      "commit": "43d78ef2ba5bec26d0315859e8324bfc0be23766",
      "tree": "6ea576e0a20a11745c7a45b2a15dd855a45b655a",
      "parents": [
        "a301b777714087ea1d63dbec0173a13d416cd7a9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Feb 06 18:26:11 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:40:45 2007 -0800"
      },
      "message": "NFS: disconnect before retrying NFSv4 requests over TCP\n\nRFC3530 section 3.1.1 states an NFSv4 client MUST NOT send a request\ntwice on the same connection unless it is the NULL procedure.  Section\n3.1.1 suggests that the client should disconnect and reconnect if it\nwants to retry a request.\n\nImplement this by adding an rpc_clnt flag that an ULP can use to\nspecify that the underlying transport should be disconnected on a\nmajor timeout.  The NFSv4 client asserts this new flag, and requests\nno retries after a minor retransmit timeout.\n\nNote that disconnecting on a retransmit is in general not safe to do\nif the RPC client does not reuse the TCP port number when reconnecting.\n\nSee http://bugzilla.linux-nfs.org/show_bug.cgi?id\u003d6\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cca5172a7ec10dfdb0b787cd8e9d5b0b8f179793",
      "tree": "1b9e86cf95ab5e1e2b3180ebe59be2a05ebbe1bf",
      "parents": [
        "d808ad9ab8b1109239027c248c4652503b9d3029"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 15:38:13 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:20:13 2007 -0800"
      },
      "message": "[NET] SUNRPC: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46121cf7d85869bfe9588bac7ccf55aa0bc7f278",
      "tree": "51172f1b47dd8aa99e6f96c495fe7f8e2c0bbc34",
      "parents": [
        "8885cb367f86ce02bed3bf18192d74a53ac3b81f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 31 12:14:08 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:10 2007 -0800"
      },
      "message": "SUNRPC: fix print format for tk_pid\n\nThe tk_pid field is an unsigned short.  The proper print format specifier for\nthat type is %5u, not %4d.\n\nAlso clean up some miscellaneous print formatting nits.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34161db6b14d984fb9b06c735b7b42f8803f6851",
      "tree": "99656278b6697f1cde5b05894b7c0ee22c63a00e",
      "parents": [
        "5847e1f4d058677c5e46dc6c3e3c70e8855ea3ba",
        "620034c84d1d939717bdfbe02c51a3fee43541c3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 15:48:15 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 07 15:48:15 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/ into merge_linus\n\nConflicts:\n\n\tinclude/linux/sunrpc/xprt.h\n\tnet/sunrpc/xprtsock.c\nFix up conflicts with the workqueue changes.\n"
    },
    {
      "commit": "5847e1f4d058677c5e46dc6c3e3c70e8855ea3ba",
      "tree": "3f9c266dd713eb16d5c01389c2df39b5ef727d5f",
      "parents": [
        "c041b5ff8d50c432698d9bfbd68cc4b76c2ea5bc"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 05 16:36:14 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:55 2006 -0500"
      },
      "message": "SUNRPC: Remove pprintk() from net/sunrpc/xprt.c\n\nThese appear to be deprecated.  Removing them also gets rid of some sparse\nnoise.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c8541ecdd5692bcfbcb5305cab9a873288d29175",
      "tree": "45714725337f22a5eb27cbe5b87c3b01f37c9490",
      "parents": [
        "e744cf2e3ab8535a8494a4cf0177de26f94586da"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Oct 17 14:44:27 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Dec 06 10:46:34 2006 -0500"
      },
      "message": "SUNRPC: Make the transport-specific setup routine allocate rpc_xprt\n\nChange the location where the rpc_xprt structure is allocated so each\ntransport implementation can allocate a private area from the same\nchunk of memory.\n\nNote also that xprt-\u003eops-\u003edestroy, rather than xprt_destroy, is now\nresponsible for freeing rpc_xprt when the transport is destroyed.\n\nTest plan:\nConnectathon.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "d8ed029d6000ba2e2908d9286409e4833c091b4c",
      "tree": "732feaa2e3751df5c81032a30ff4761427492ac4",
      "parents": [
        "7699431301b189fca7ccbb64fe54e5a5170f8497"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Sep 26 22:29:38 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 18:01:21 2006 -0700"
      },
      "message": "[SUNRPC]: trivial endianness annotations\n\npure s/u32/__be32/\n\n[AV: large part based on Alexey\u0027s patches]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b6ca86b77b62b798cf9ca2599036420abce7796",
      "tree": "cf631a3c293be45fa4bed54bca5dcbfc96a57df1",
      "parents": [
        "da45828e2835057045150b318c4fbe9bb91f18dd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 05 12:55:57 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:01 2006 -0400"
      },
      "message": "SUNRPC: Add refcounting to the struct rpc_xprt\n\nIn a subsequent patch, this will allow the portmapper to take a reference\nto the rpc_xprt for which it is updating the port number, fixing an Oops.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "da45828e2835057045150b318c4fbe9bb91f18dd",
      "tree": "b04b3ae7fe4cf79c8af2f399f44d5db65995ac55",
      "parents": [
        "76303992b4701124f4cd0791ae2049ab4332f02c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 31 15:44:52 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:00 2006 -0400"
      },
      "message": "SUNRPC: Clean up soft task error handling\n\n- Ensure that the task aborts the RPC call only when it has actually timed out.\n - Ensure that req-\u003erq_majortimeo is initialised correctly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff9aa5e56df60cc8565a93cc868fe25ae3f20e49",
      "tree": "ae1045652699feacd18aecbc7023edd430c2695e",
      "parents": [
        "9e1968c58d72c4b85d8a69bda1e194f9701fb224"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:21 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:51 2006 -0400"
      },
      "message": "SUNRPC: Eliminate xprt_create_proto and rpc_create_client\n\nThe two function call API for creating a new RPC client is now obsolete.\nRemove it.\n\nAlso, remove an unnecessary check to see whether the caller is capable of\nusing privileged network services.  The kernel RPC client always uses a\nprivileged ephemeral port by default; callers are responsible for checking\nthe authority of users to make use of any RPC service, or for specifying\nthat a nonprivileged port is acceptable.\n\nTest plan:\nRepeated runs of Connectathon locking suite.  Check network trace to ensure\ncorrectness of NLM requests and replies.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c2866763b4029411d166040306691773c12d4caf",
      "tree": "5b16b3a293843062234c5eaf377da2af93365266",
      "parents": [
        "6ca948238724c945bd353f51d54ae7d285f3889f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:49 2006 -0400"
      },
      "message": "SUNRPC: use sockaddr + size when creating remote transport endpoints\n\nPrepare for more generic transport endpoint handling needed by transports\nthat might use different forms of addressing, such as IPv6.\n\nIntroduce a single function call to replace the two-call\nxprt_create_proto/rpc_create_client API.  Define a new rpc_create_args\nstructure that allows callers to pass in remote endpoint addresses of\nvarying length.\n\nTest-plan:\nCompile kernel with CONFIG_NFS enabled.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c4efcb1d3e0bc76aeb9ca6301d19a5079893c6c9",
      "tree": "23f113b897f1ab2e00e4fcf774d93711d7f703b8",
      "parents": [
        "e7f7865743fff3d3938ec7540e5a784d662426da"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:48 2006 -0400"
      },
      "message": "SUNRPC: Use \"sockaddr_storage\" for storing RPC client\u0027s remote peer address\n\nIPv6 addresses are big (128 bytes).  Now that no RPC client consumers treat\nthe addr field in rpc_xprt structs as an opaque, and access it only via the\nAPI calls, we can safely widen the field in the rpc_xprt struct to\naccomodate larger addresses.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4a68179d38874c37be2802442a71b847f5d1a2a9",
      "tree": "688b345744d182e303f96891d396a0ee1e43520a",
      "parents": [
        "ec739ef03dc926d05051c8c5838971445504470a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:15 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:39 2006 -0400"
      },
      "message": "SUNRPC: Make RPC portmapper use per-transport storage\n\nMove connection and bind state that was maintained in the rpc_clnt\nstructure to the rpc_xprt structure.  This will allow the creation of\na clean API for plugging in different types of bind mechanisms.\n\nThis brings improvements such as the elimination of a single spin lock to\ncontrol serialization for all in-kernel RPC binding.  A set of per-xprt\nbitops is used to serialize tasks during RPC binding, just like it now\nworks for making RPC transport connections.\n\nTest-plan:\nDestructive testing (unplugging the network temporarily).  Connectathon\nwith UDP and TCP.  NFSv2/3 and NFSv4 mounting should be carefully checked.\nProbably need to rig a server where certain services aren\u0027t running, or\nthat returns an error for some typical operation.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec739ef03dc926d05051c8c5838971445504470a",
      "tree": "940d3dafd873c159c1279ade15ba11ede1d12983",
      "parents": [
        "9c5bf38d85a31b946664bcc21078ef5bb10672f7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Aug 22 20:06:15 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:39 2006 -0400"
      },
      "message": "SUNRPC: Create a helper to tell whether a transport is bound\n\nHide the contents and format of xprt-\u003eaddr by eliminating direct uses\nof the xprt-\u003eaddr.sin_port field.  This change is required to support\nalternate RPC host address formats (eg IPv6).\n\nTest-plan:\nDestructive testing (unplugging the network temporarily).  Repeated runs of\nConnectathon locking suite with UDP and TCP.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e0ab53deaa91293a7958d63d5a2cf4c5645ad6f0",
      "tree": "1117ac18e263222ad91f3af90ddcaf65f37b79f6",
      "parents": [
        "f3d43c769d14b7065da7f62ec468b1fcb8cd6e06"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jul 27 17:22:50 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 03 16:56:55 2006 -0400"
      },
      "message": "RPC: Ensure that we disconnect TCP socket when client requests error out\n\nIf we\u0027re part way through transmitting a TCP request, and the client\nerrors, then we need to disconnect and reconnect the TCP socket in order to\navoid confusing the server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from 031a50c8b9ea82616abd4a4e18021a25848941ce commit)\n"
    },
    {
      "commit": "0da974f4f303a6842516b764507e3c0a03f41e5a",
      "tree": "8872aec792f02040269c6769dd1009b20f71d186",
      "parents": [
        "a0ee7c70b22f78593957f99faa06acb4747b8bc0"
      ],
      "author": {
        "name": "Panagiotis Issaris",
        "email": "takis@issaris.org",
        "time": "Fri Jul 21 14:51:30 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 21 14:51:30 2006 -0700"
      },
      "message": "[NET]: Conversions from kmalloc+memset to k(z|c)alloc.\n\nSigned-off-by: Panagiotis Issaris \u003ctakis@issaris.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "bf3fcf89552f24657bcfb6a9d73cd167ebb496c6",
      "tree": "83ffe1cbdcd4a6358f97b92962f57d557158f317",
      "parents": [
        "b85d88068444ae5dcb1639bcef770ccbf085dd4e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu May 25 01:40:51 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:06 2006 -0400"
      },
      "message": "SUNRPC: NFS_ROOT always uses the same XIDs\n\nThe XID generator uses get_random_bytes to generate an initial XID.\nNFS_ROOT starts up before the random driver, though, so get_random_bytes\ndoesn\u0027t set a random XID for NFS_ROOT.  This causes NFS_ROOT mount points\nto reuse XIDs every time the client is booted.  If the client boots often\nenough, the server will start serving old replies out of its DRC.\n\nUse net_random() instead.\n\nTest plan:\nI/O intensive workloads should perform well and generate no errors.  Traces\ntaken during client reboots should show that NFS_ROOT mounts use unique\nXIDs after every reboot.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43ac3f2961b8616da26114ec6dc76ac2a61f76ad",
      "tree": "461fc961f6c7d9a724425654523cf61cb6c2e485",
      "parents": [
        "c42de9dd67250fe984e0e31c9b542d721af6454b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "message": "SUNRPC: Fix memory barriers for req-\u003erq_received\n\nWe need to ensure that all writes to the XDR buffers are done before\nreq-\u003erq_received is visible to other processors.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e95b85ec9d8c8ad4667f746aa4c9d22c281efc44",
      "tree": "64996f0b60aee3f95396922ff6939ec8dc35b4d3",
      "parents": [
        "dead28da8e3fb32601d38fb32b7021122e0a3d21"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:23 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:23 2006 -0500"
      },
      "message": "SUNRPC: minor cleanup\n\nRPC_DEBUG_DATA no longer needed in net/sunrpc/xprt.c.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "11c556b3d8d481829ab5f9933a25d29b00913b5a",
      "tree": "d1127fa5d22aeb035ca9977abbc73a29d5436fbe",
      "parents": [
        "ef759a2e54ed434b2f72b52a14edecd6d4eadf74"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:22 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:22 2006 -0500"
      },
      "message": "SUNRPC: provide a mechanism for collecting stats in the RPC client\n\nAdd a simple mechanism for collecting stats in the RPC client.  Stats are\ntabulated during xprt_release.  Note that per_cpu shenanigans are not\nrequired here because the RPC client already serializes on the transport\nwrite lock.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.  Basic performance regression\ntesting with high-speed networking and high performance server.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef759a2e54ed434b2f72b52a14edecd6d4eadf74",
      "tree": "aa495ef4691387839146683dfae0f0084fbe6137",
      "parents": [
        "262ca07de4d7f1bff20361c1353bb14b3607afb2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:17 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:17 2006 -0500"
      },
      "message": "SUNRPC: introduce per-task RPC iostats\n\nAccount for various things that occur while an RPC task is executed.\nSeparate timers for RPC round trip and RPC execution time show how\nlong RPC requests wait in queue before being sent.  Eventually these\nwill be accumulated at xprt_release time in one place where they can\nbe viewed from userland.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "262ca07de4d7f1bff20361c1353bb14b3607afb2",
      "tree": "e448a66b4549bbd660f76e81da0067d762a4732e",
      "parents": [
        "e19b63dafdf7d615b0d36b90990a07e7792b9d3a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:16 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:16 2006 -0500"
      },
      "message": "SUNRPC: add a handful of per-xprt counters\n\nMonitor generic transport events.  Add a transport switch callout to\nformat transport counters for export to user-land.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0065db328533c390fbfb0fe0c46bcf9a278fb99e",
      "tree": "3ef282aa05653857007760ce15a4119f198f8320",
      "parents": [
        "632e3bdc5006334cea894d078660b691685e1075"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:56 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:58 2006 -0500"
      },
      "message": "SUNRPC: Clean up xprt_destroy()\n\n We ought never to be calling xprt_destroy() if there are still active\n rpc_tasks. Optimise away the broken code that attempts to \"fix\" that case.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "632e3bdc5006334cea894d078660b691685e1075",
      "tree": "c18dbe84dfe679d19a581ea0c9bfb931daa08917",
      "parents": [
        "eadb8c147154bff982f02accf31b847a1f142ace"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:55 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:57 2006 -0500"
      },
      "message": "SUNRPC: Ensure client closes the socket when server initiates a close\n\n If the server decides to close the RPC socket, we currently don\u0027t actually\n respond until either another RPC call is scheduled, or until xprt_autoclose()\n gets called by the socket expiry timer (which may be up to 5 minutes\n later).\n\n This patch ensures that xprt_autoclose() is called much sooner if the\n server closes the socket.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02107148349f31eee7c0fb06fd7a880df73dbd20",
      "tree": "37bffd81e08b8e50394ce89a1aa7a3961f0ffbe7",
      "parents": [
        "03c21733938aad0758f5f88e1cc7ede69fc3c910"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jan 03 09:55:49 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:55 2006 -0500"
      },
      "message": "SUNRPC: switchable buffer allocation\n\n Add RPC client transport switch support for replacing buffer management\n on a per-transport basis.\n\n In the current IPv4 socket transport implementation, RPC buffers are\n allocated as needed for each RPC message that is sent.  Some transport\n implementations may choose to use pre-allocated buffers for encoding,\n sending, receiving, and unmarshalling RPC messages, however.  For\n transports capable of direct data placement, the buffers can be carved\n out of a pre-registered area of memory rather than from a slab cache.\n\n Test-plan:\n Millions of fsx operations.  Performance characterization with \"sio\" and\n \"iozone\".  Use oprofile and other tools to look for significant regression\n in CPU utilization.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ead5e1c26fdcd969cf40c49cb0589d56879d240d",
      "tree": "af0e04aed32eac60b35c987b933dbc132f0e780b",
      "parents": [
        "293f1eb551a77fe5c8956a559a3c0baea95cd9bc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu Oct 13 16:54:43 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 23:19:43 2005 -0700"
      },
      "message": "SUNRPC: Provide a callback to allow free pages allocated during xdr encoding\n\n For privacy, we need to allocate pages to store the encrypted data (passed\n in pages can\u0027t be used without the risk of corrupting data in the page cache).\n So we need a way to free that memory after the request has been transmitted.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5e5ce5be6f0161d2a069a4f8a1154fe639c5c02f",
      "tree": "fc6e0397c8e17dad5f3f038fb1b3526a114b5244",
      "parents": [
        "ea635a517e350eb03ab5f01618417f31b82a9a4d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:11 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:11 2005 -0700"
      },
      "message": "RPC: allow call_encode() to delay transmission of an RPC call.\n\n Currently, call_encode will cause the entire RPC call to abort if it returns\n an error. This is unnecessarily rigid, and gets in the way of attempts\n to allow the NFSv4 layer to order RPC calls that carry sequence ids.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03bf4b707eee06706c9db343dd5c905b7ee47ed2",
      "tree": "54f89b578758e2bf2650b647ae1c7100c882a757",
      "parents": [
        "3167e12c0c424f3c323944701615343022d86418"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:55 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:53 2005 -0400"
      },
      "message": "[PATCH] RPC: parametrize various transport connect timeouts\n\n Each transport implementation can now set unique bind, connect,\n reestablishment, and idle timeout values.  These are variables,\n allowing the values to be modified dynamically.  This permits\n exponential backoff of any of these values, for instance.\n\n As an example, we implement exponential backoff for the connection\n reestablishment timeout.\n\n Test-plan:\n Destructive testing (unplugging the network temporarily).  Connectathon\n with UDP and TCP.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "555ee3af161b037865793bd4bebc06b58daafde6",
      "tree": "4c72474dabffab62234db158e5b6c86ace4f9d09",
      "parents": [
        "ed63c003701a314c4893c11eceb9d68f8f46c662"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:54 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:48 2005 -0400"
      },
      "message": "[PATCH] RPC: clean up after nocong was removed\n\n Clean-up:  Move some macros that are specific to the Van Jacobson\n implementation into xprt.c.  Get rid of the cong_wait field in\n rpc_xprt, which is no longer used.  Get rid of xprt_clear_backlog.\n\n Test-plan:\n Compile with CONFIG_NFS enabled.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a58dd398f5db4f73d5c581069fd70a4304cc4f0a",
      "tree": "09e290d351c043392e7a2f8e0bc77aba90ff88ad",
      "parents": [
        "1570c1e41eabf6b7031f3e4322a2cf1cbe319fee"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:53 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:45 2005 -0400"
      },
      "message": "[PATCH] RPC: add a release_rqst callout to the RPC transport switch\n\n The final place where congestion control state is adjusted is in\n xprt_release, where each request is finally released.  Add a callout\n there to allow transports to perform additional processing when a\n request is about to be released.\n\n Test-plan:\n Use WAN simulation to cause sporadic bursty packet loss.  Look for significant\n regression in performance or client stability.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1570c1e41eabf6b7031f3e4322a2cf1cbe319fee",
      "tree": "eee53757ac3e03d55b6c01bb0500996ba520a8bb",
      "parents": [
        "46c0ee8bc4ad3743de05e8b8b20201df44dcb6d3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:52 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:43 2005 -0400"
      },
      "message": "[PATCH] RPC: add generic interface for adjusting the congestion window\n\n A new interface that allows transports to adjust their congestion window\n using the Van Jacobson implementation in xprt.c is provided.\n\n Test-plan:\n Use WAN simulation to cause sporadic bursty packet loss.  Look for\n significant regression in performance or client stability.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "46c0ee8bc4ad3743de05e8b8b20201df44dcb6d3",
      "tree": "6b2993ff1cefb69cc3cc40c3605d088ea2af3c98",
      "parents": [
        "49e9a89086b3cae784a4868ca852863e4f4ea3fe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:52 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:41 2005 -0400"
      },
      "message": "[PATCH] RPC: separate xprt_timer implementations\n\n Allow transports to hook the retransmit timer interrupt.  Some transports\n calculate their congestion window here so that a retransmit timeout has\n immediate effect on the congestion window.\n\n Test-plan:\n Use WAN simulation to cause sporadic bursty packet loss.  Look for significant\n regression in performance or client stability.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "49e9a89086b3cae784a4868ca852863e4f4ea3fe",
      "tree": "5ba197fc1767fee5590b892b2f19aeb3583494c4",
      "parents": [
        "12a804698b29d040b7cdd92e8a44b0e75164dae9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:51 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:40 2005 -0400"
      },
      "message": "[PATCH] RPC: expose API for serializing access to RPC transports\n\n The next method we abstract is the one that releases a transport,\n allowing another task to have access to the transport.\n\n Again, one generic version of this is provided for transports that\n don\u0027t need the RPC client to perform congestion control, and one\n version is for transports that can use the original Van Jacobson\n implementation in xprt.c.\n\n Test-plan:\n Use WAN simulation to cause sporadic bursty packet loss.  Look for\n significant regression in performance or client stability.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "12a804698b29d040b7cdd92e8a44b0e75164dae9",
      "tree": "9885cf95a0a2945ad8cd00de59633a0aa16a3599",
      "parents": [
        "fe3aca290f17ae4978bd73d02aa4029f1c9c024c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:51 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:38 2005 -0400"
      },
      "message": "[PATCH] RPC: expose API for serializing access to RPC transports\n\n The next several patches introduce an API that allows transports to\n choose whether the RPC client provides congestion control or whether\n the transport itself provides it.\n\n The first method we abstract is the one that serializes access to the\n RPC transport to prevent the bytes from different requests from mingling\n together.  This method provides proper request serialization and the\n opportunity to prevent new requests from being started because the\n transport is congested.\n\n The normal situation is for the transport to handle congestion control\n itself.  Although NFS over UDP was first, it has been recognized after\n years of experience that having the transport provide congestion control\n is much better than doing it in the RPC client.  Thus TCP, and probably\n every future transport implementation, will use the default method,\n xprt_lock_write, provided in xprt.c, which does not provide any kind\n of congestion control.  UDP can continue using the xprt.c-provided\n Van Jacobson congestion avoidance implementation.\n\n Test-plan:\n Use WAN simulation to cause sporadic bursty packet loss.  Look for significant\n regression in performance or client stability.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe3aca290f17ae4978bd73d02aa4029f1c9c024c",
      "tree": "4fbaa255e9e7a85f41eacb7cf1214dc44a90bcea",
      "parents": [
        "43118c29dea2b23798bd42a147015cceee7fa885"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:50 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:36 2005 -0400"
      },
      "message": "[PATCH] RPC: add API to set transport-specific timeouts\n\n Prepare the way to remove the \"xprt-\u003enocong\" variable by adding a callout\n to the RPC client transport switch API to handle setting RPC retransmit\n timeouts.\n\n Add a pair of generic helper functions that provide the ability to set a\n simple fixed timeout, or to set a timeout based on the state of a round-\n trip estimator.\n\n Test-plan:\n Use WAN simulation to cause sporadic bursty packet loss.  Look for significant\n regression in performance or client stability.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43118c29dea2b23798bd42a147015cceee7fa885",
      "tree": "4951a6777a3dc167d46c1373c02d21912b250e96",
      "parents": [
        "808012fbb23a52ec59352445d2076d175ad4ab26"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:49 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:35 2005 -0400"
      },
      "message": "[PATCH] RPC: get rid of xprt-\u003estream\n\n Now we can fix up the last few places that use the \"xprt-\u003estream\"\n variable, and get rid of it from the rpc_xprt structure.\n\n Test-plan:\n Destructive testing (unplugging the network temporarily).  Connectathon\n with UDP and TCP.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c7b2cae8a634015b72941ba2fc6c4bc9b8d3a129",
      "tree": "95f561877d67eed80a823daa6ef0c00ad1c060eb",
      "parents": [
        "55aa4f58aa43dc9a51fb80010630d94b96053a2e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:50 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:28 2005 -0400"
      },
      "message": "[PATCH] RPC: separate TCP and UDP write space callbacks\n\n Split the socket write space callback function into a TCP version and UDP\n version, eliminating one dependence on the \"xprt-\u003estream\" variable.\n\n Keep the common pieces of this path in xprt.c so other transports can use\n it too.\n\n Test-plan:\n Write-intensive workload on a single mount point.\n\n Version: Thu, 11 Aug 2005 16:07:51 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55aa4f58aa43dc9a51fb80010630d94b96053a2e",
      "tree": "7b3d79bdc15c76c25d8a53437b9e4173ebc68f24",
      "parents": [
        "44fbac2288dfed6f1963ac00bf922c3bcd779cd1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:47 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:26 2005 -0400"
      },
      "message": "[PATCH] RPC: client-side transport switch cleanup\n\n Clean-up: change some comments to reflect the realities of the new RPC\n transport switch mechanism.  Get rid of unused xprt_receive() prototype.\n\n Also, organize function prototypes in xprt.h by usage and scope.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.\n\n Version: Thu, 11 Aug 2005 16:07:21 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44fbac2288dfed6f1963ac00bf922c3bcd779cd1",
      "tree": "f256182f85b4fdf9185903d6f0531f877e311c8e",
      "parents": [
        "86b9f57dfdf455763d2be73a742a9a88bb664173"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:44 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:24 2005 -0400"
      },
      "message": "[PATCH] RPC: Add helper for waking tasks pending on a transport\n\n Clean-up: remove only reference to xprt-\u003epending from the socket transport\n implementation.  This makes a cleaner interface for other transport\n implementations as well.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.\n\n Version: Thu, 11 Aug 2005 16:06:52 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2226feb6bcd0e5e117a9be3ea3dd3ffc14f3e41e",
      "tree": "5ae6bde4dd66da8932c23c780745c72cf38de722",
      "parents": [
        "5dc07727f86b25851e95193a0c484ea21b531c47"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:38 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:21 2005 -0400"
      },
      "message": "[PATCH] RPC: rename the sockstate field\n\n Clean-up: get rid of a name reference to sockets in the generic parts of the\n RPC client by renaming the sockstate field in the rpc_xprt structure.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.\n\n Version: Thu, 11 Aug 2005 16:05:53 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dc07727f86b25851e95193a0c484ea21b531c47",
      "tree": "813a8cb359fef51172ff67d9da8efdfc5fee4a83",
      "parents": [
        "4a0f8c04f2ece949d54a0c4fd7490259cf23a58a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:35 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:19 2005 -0400"
      },
      "message": "[PATCH] RPC: Rename xprt_lock\n\n Clean-up: Replace the xprt_lock with something more aptly named.  This lock\n single-threads the XID and request slot reservation process.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.\n\n Version: Thu, 11 Aug 2005 16:05:26 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4a0f8c04f2ece949d54a0c4fd7490259cf23a58a",
      "tree": "6c6e142cfa37b984dcba6f785a4f886374a307c6",
      "parents": [
        "b4b5cc85ed4ecbe4adbfbc4df028850de67a9f09"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:32 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:17 2005 -0400"
      },
      "message": "[PATCH] RPC: Rename sock_lock\n\n Clean-up: replace a name reference to sockets in the generic parts of the RPC\n client by renaming sock_lock in the rpc_xprt structure.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.\n\n Version: Thu, 11 Aug 2005 16:05:00 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9903cd1c27a1f30e8efea75e125be3b2002f7cb9",
      "tree": "ad684d0ce47793f161839e2321f118206ef707f3",
      "parents": [
        "a246b0105bbd9a70a698f69baae2042996f2a0e9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:26 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:14 2005 -0400"
      },
      "message": "[PATCH] RPC: transport switch function naming\n\n Introduce block header comments and a function naming convention to the\n socket transport implementation.  Provide a debug setting for transports\n that is separate from RPCDBG_XPRT.  Eliminate xprt_default_timeout().\n\n Provide block comments for exposed interfaces in xprt.c, and eliminate\n the useless obvious comments.\n\n Convert printk\u0027s to dprintk\u0027s.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.\n\n Version: Thu, 11 Aug 2005 16:04:04 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a246b0105bbd9a70a698f69baae2042996f2a0e9",
      "tree": "6c8831d8579a7fdc5201d3e9c20270cb1420eeda",
      "parents": [
        "094bb20b9fcab3a1652a77741caba6b78097d622"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:23 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:12 2005 -0400"
      },
      "message": "[PATCH] RPC: introduce client-side transport switch\n\n Move the bulk of client-side socket-specific code into a separate source\n file, net/sunrpc/xprtsock.c.\n\n Test-plan:\n Millions of fsx operations.  Performance characterization such as \"sio\" or\n \"iozone\".  Destructive testing (unplugging the network temporarily, server\n reboots).  Connectathon with v2, v3, and v4.\n\n Version: Thu, 11 Aug 2005 16:03:38 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "094bb20b9fcab3a1652a77741caba6b78097d622",
      "tree": "85347e557be116ed1fa8bbf63555fcb83920baf5",
      "parents": [
        "602f83273c89fdd25f24757564d8001cf723e740"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:20 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:11 2005 -0400"
      },
      "message": "[PATCH] RPC: extract socket logic common to both client and server\n\n Clean-up: Move some code that is common to both RPC client- and server-side\n socket transports into its own source file, net/sunrpc/socklib.c.\n\n Test-plan:\n Compile kernel with CONFIG_NFS enabled.  Millions of fsx operations over\n UDP, client and server.  Connectathon over UDP.\n\n Version: Thu, 11 Aug 2005 16:03:09 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eab5c084b858fd95a873fc2b97de9a9ad937b4ed",
      "tree": "6ba8287570ecc83fed1512bd4901df979221c2ab",
      "parents": [
        "da35187801732397a7e05fb9e77f3700cc35f5db"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:14 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:06 2005 -0400"
      },
      "message": "[PATCH] NFS: use a constant value for TCP retransmit timeouts\n\n Implement a best practice: don\u0027t use exponential backoff when computing\n retransmit timeout values on TCP connections, but simply retransmit\n at regular intervals.\n\n This also fixes a bug introduced when xprt_reset_majortimeo() was added.\n\n Test-plan:\n Enable RPC debugging and watch timeout behavior on a NFS/TCP mount.\n\n Version: Thu, 11 Aug 2005 16:02:19 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "23475d66bd8600e0c5353f86c1b74f68df27bdb5",
      "tree": "040565dacc08e99a86e2dd716b348f74e12e08db",
      "parents": [
        "9aa48b7e270d13c8781414dce081a42cae20a80d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:08 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:03 2005 -0400"
      },
      "message": "[PATCH] RPC: Report connection errors properly when mounting with \"soft\"\n\n Fix up xprt_connect_status: the soft timeout logic was clobbering tk_status,\n so TCP connect errors were not properly reported on soft mounts.\n\n Test-plan:\n Destructive testing (unplugging the network temporarily).  Connectathon\n with UDP and TCP.\n\n Version: Thu, 11 Aug 2005 16:01:28 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7e8d7e3c9e38dab8d28a8667faa4941842f64213",
      "tree": "f2584d8f7ebd4afd8c40f14dbb1558762bade2a5",
      "parents": [
        "7eaae2828dadae3abde7f77734c874d4b74b313a"
      ],
      "author": {
        "name": "KAMBAROV, ZAUR",
        "email": "kambarov@berkeley.edu",
        "time": "Thu Jul 07 17:57:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:47 2005 -0700"
      },
      "message": "[PATCH] coverity: sunrpc/xprt task null check\n\nIn __xprt_lock_write() we check to see if `task\u0027 is NULL, but in other places\nwe just go and dereference it.\n\n`task\u0027 shouldn\u0027t be NULL anyway, so remove this test.\n\nThis defect was found automatically by Coverity Prevent, a static analysis\ntool.\n\nSigned-off-by: Zaur Kambarov \u003czkambarov@coverity.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c54d7e03c3a21b38c587f671704c5a12aa3987fc",
      "tree": "c0d1470cd1c92842530020a952f754161f69ad61",
      "parents": [
        "a6484045fdd4154f8c8ee8c1dda4e32854c047e0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 24 19:57:07 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 24 19:57:07 2005 -0700"
      },
      "message": "[SUNRPC]: Fix {s,}size_t printf format strings in xprt.c\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae3884621bf5b4caff7785b9a417f262202965b2",
      "tree": "47cc8b29485d45f1967521a26151957e09c9012c",
      "parents": [
        "20e5ac828dfd23b9080159c62a34f32d2dcd92fc"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Jun 22 17:16:28 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:32 2005 -0400"
      },
      "message": "[PATCH] RPC: kick off socket connect operations faster\n\n Make the socket transport kick the event queue to start socket connects\n immediately.  This should improve responsiveness of applications that are\n sensitive to slow mount operations (like automounters).\n\n We are now also careful to cancel the connect worker before destroying\n the xprt.  This eliminates a race where xprt_destroy can finish before\n the connect worker is even allowed to run.\n\n Test-plan:\n Destructive testing (unplugging the network temporarily).  Connectathon\n with UDP and TCP.  Hard-code impossibly small connect timeout.\n\n Version: Fri, 29 Apr 2005 15:32:01 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20e5ac828dfd23b9080159c62a34f32d2dcd92fc",
      "tree": "4edb9b0ae0e9b0a529f7f710f7a2276e44fa3425",
      "parents": [
        "0f9dc2b16884bb5957d010ed8e9114e771a05916"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Jun 22 17:16:28 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:32 2005 -0400"
      },
      "message": "[PATCH] RPC: TCP reconnects are too slow\n\n When the network layer reports a connection close, the RPC task\n waiting to reconnect should be notified so it can retry immediately\n instead of waiting for the normal connection establishment timeout.\n\n This reverts a change made in 2.6.6 as part of adding client support\n for RPC over TCP socket idle timeouts.\n\n Test-plan:\n Destructive testing with NFS over TCP mounts.\n\n Version: Fri, 29 Apr 2005 15:31:46 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0f9dc2b16884bb5957d010ed8e9114e771a05916",
      "tree": "538e71230ac6fb722eac40127326f56b87570bf7",
      "parents": [
        "14b218a8e4f110206c46e586a3da372f665631e7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:28 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:31 2005 -0400"
      },
      "message": "[PATCH] RPC: Clean up socket autodisconnect\n\n Cancel autodisconnect requests inside xprt_transmit() in order to avoid\n races.\n Use more efficient del_singleshot_timer_sync()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7e06b53d796a3740307b54aa2799077f8a0c84e7",
      "tree": "95c00126400914bfd68f84ed7669272e581e9386",
      "parents": [
        "e053d1ab62c8ef0eff3dd4c95448cad3c6d2fbf4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:24 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:19 2005 -0400"
      },
      "message": "[PATCH] RPC: fix accounting bug in the case of a truncated RPC message\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e053d1ab62c8ef0eff3dd4c95448cad3c6d2fbf4",
      "tree": "70ca8b8721761fdd4c12c330f8389958ad160c61",
      "parents": [
        "007e251f2b2760f738c92adc8c80cbae0bed3ce5"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Jun 22 17:16:24 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:19 2005 -0400"
      },
      "message": "[PATCH] RPC: Lazy RPC receive buffer allocation\n\n Signed-off-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\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"
    }
  ]
}
