)]}'
{
  "log": [
    {
      "commit": "92769108f5382a0bdb4c35eb80c183fb7797cfae",
      "tree": "8a3b8d9a2e7e23536fbcd374592341e968d2a1af",
      "parents": [
        "e9541ce8efc22c233a045f091c2b969923709038"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Mar 23 15:25:03 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "sunrpc: skip portmap calls on sessions backchannel\n\nThere\u0027s obviously no point to doing portmap calls over the sessions\nbackchannel.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "09acfea5d8de419ebe84be43b08f7b79c965215f",
      "tree": "16f7ef15b00d8601917de6812b9ac951c9458ef6",
      "parents": [
        "17280175c587469b34757263c7cfc608f0ea2334"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 15:22:54 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 11 19:30:02 2012 -0400"
      },
      "message": "SUNRPC: Fix a few sparse warnings\n\nnet/sunrpc/svcsock.c:412:22: warning: incorrect type in assignment\n(different address spaces)\n - svc_partial_recvfrom now takes a struct kvec, so the variable\n   save_iovbase needs to be an ordinary (void *)\n\nMake a bunch of variables in net/sunrpc/xprtsock.c static\n\nFix a couple of \"warning: symbol \u0027foo\u0027 was not declared. Should it be\nstatic?\" reports.\n\nFix a couple of conflicting function declarations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15a4520621824a3c2eb2de2d1f3984bc1663d3c8",
      "tree": "0ff258cf98774c72793ece98f2605f3fe132e352",
      "parents": [
        "1d96e80faff57b9eefa283b35716a384bbb3d5b3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Feb 14 16:19:18 2012 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 16 14:55:27 2012 -0500"
      },
      "message": "SUNRPC: add sending,pending queue and max slot to xprt stats\n\nWith static RPC slots, the xprt backlog queue stats were useful in showing\nwhen the transport (TCP) was starved by lack of RPC slots. The new dynamic\nRPC slot code, commit d9ba131d8f58c0d2ff5029e7002ab43f913b36f9, always\nprovides an RPC slot and so only uses the xprt backlog queue when the\ntcp_max_slot_table_entries value has been hit or when an allocation error\noccurs. All requests are now placed on the xprt sending or pending queue which\nneed to be monitored for debugging.\n\nThe max_slot stat shows the maximum number of dynamic RPC slots reached which is\nuseful when debugging performance issues.\n\nAdd the new fields at the end of the mountstats xprt stanza so that mountstats\noutputs the previous correct values and ignores the new fields. Bump\nNFS_IOSTATS_VERS.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24ca9a847791fd53d9b217330b15f3c285827a18",
      "tree": "a65b8af87ddc7b48911dd04c4644d2d2aaf0127d",
      "parents": [
        "866d43c9ea88daa3751b58aba16a2a9b7f7aa067"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 22 14:44:28 2011 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 22 23:55:27 2011 +0200"
      },
      "message": "SUNRPC: Ensure we return EAGAIN in xs_nospace if congestion is cleared\n\nBy returning \u00270\u0027 instead of \u0027EAGAIN\u0027 when the tests in xs_nospace() fail\nto find evidence of socket congestion, we are making the RPC engine believe\nthat the message was incorrectly sent and so it disconnects the socket\ninstead of just retrying.\n\nThe bug appears to have been introduced by commit\n5e3771ce2d6a69e10fcc870cdf226d121d868491 (SUNRPC: Ensure that xs_nospace\nreturn values are propagated).\n\nReported-by: Andrew Cooper \u003candrew.cooper3@citrix.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d 2.6.30]\nTested-by: Andrew Cooper \u003candrew.cooper3@citrix.com\u003e\n"
    },
    {
      "commit": "2aa13531bbbc6582874bedfcd853e1058b0fb4f9",
      "tree": "6dc0ad696b49bdf6f68382900775a19fb289bf25",
      "parents": [
        "a6f498a891c730327645a7afa10c5ae977de6fd8"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Nov 10 14:33:23 2011 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Nov 10 14:50:07 2011 -0500"
      },
      "message": "SUNRPC: destroy freshly allocated transport in case of sockaddr init error\n\nOtherwise we will leak xprt structure and struct net reference.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d9ba131d8f58c0d2ff5029e7002ab43f913b36f9",
      "tree": "f2ed7330c72077bf84954b989cbe1ff47522a115",
      "parents": [
        "21de0a955f3af29fa1100d96f66e6adade89e77a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 17 18:11:30 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 17 18:11:30 2011 -0400"
      },
      "message": "SUNRPC: Support dynamic slot allocation for TCP connections\n\nAllow the number of available slots to grow with the TCP window size.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43cedbf0e8dfb9c5610eb7985d5f21263e313802",
      "tree": "7758630292b6a276a3db72e63803ddc02c0a4444",
      "parents": [
        "f85ef69ce08bc2209858135328335f668ba35bdb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 17 16:01:03 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 17 16:01:03 2011 -0400"
      },
      "message": "SUNRPC: Ensure that we grab the XPRT_LOCK before calling xprt_alloc_slot\n\nThis throttles the allocation of new slots when the socket is busy\nreconnecting and/or is out of buffer space.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e00abc3c20904fd6a5d888bb7023925799ec8a5",
      "tree": "ea6f8749fa21e5b23f02b36c3a82e405b495af0b",
      "parents": [
        "1f9453578f059d2651aa6c6b16756627fc9f2a74"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 13 19:20:49 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jul 15 09:12:23 2011 -0400"
      },
      "message": "SUNRPC: sunrpc should not explicitly depend on NFS config options\n\nChange explicit references to CONFIG_NFS_V4_1 to implicit ones\nGet rid of the unnecessary defines in backchannel_rqst.c and\nbc_svc.c: the Makefile takes care of those dependency.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "176e21ee2ec89cae8d45cf1a850ea45a45428fb8",
      "tree": "4e1231617d193b3fe62ea5bd4df5e4d8fe8b9e80",
      "parents": [
        "559649efb9b0d248541933197bdf7b75529da457"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@ORACLE.COM",
        "time": "Mon May 09 15:22:44 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Support for RPC over AF_LOCAL transports\n\nTI-RPC introduces the capability of performing RPC over AF_LOCAL\nsockets.  It uses this mainly for registering and unregistering\nlocal RPC services securely with the local rpcbind, but we could\nalso conceivably use it as a generic upcall mechanism.\n\nThis patch provides a client-side only implementation for the moment.\nWe might also consider a server-side implementation to provide\nAF_LOCAL access to NLM (for statd downcalls, and such like).\n\nAutobinding is not supported on kernel AF_LOCAL transports at this\ntime.  Kernel ULPs must specify the pathname of the remote endpoint\nwhen an AF_LOCAL transport is created.  rpcbind supports registering\nservices available via AF_LOCAL, so the kernel could handle it with\nsome adjustment to -\u003erpcbind and -\u003eset_port.  But we don\u0027t need this\nfeature for doing upcalls via well-known named sockets.\n\nThis has not been tested with ULPs that move a substantial amount of\ndata.  Thus, I can\u0027t attest to how robust the write_space and\ncongestion management logic is.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "61677eeec29e87edc03a1061ae0a04b92507450d",
      "tree": "a305e0359d5c2b3cd611f9989bf18f4202c48cb2",
      "parents": [
        "26f04dde681c6a48b2bacfc5fe01fef204419b0c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon May 09 15:22:34 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:47 2011 -0400"
      },
      "message": "SUNRPC: Rename xs_encode_tcp_fragment_header()\n\nClean up: Use a more generic name for xs_encode_tcp_fragment_header();\nit\u0027s appropriate to use for all stream transport types.  We\u0027re about\nto add new stream transport.\n\nAlso, move it to a place where it is more easily shared amongst the\nvarious send_request methods.  And finally, replace the \"htonl\" macro\ninvocation with its modern equivalent.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe19a96b10032035a35779f42ad59e35d6dd8ffd",
      "tree": "12277ec0de8e30806f3fd4287da9cc6433d69615",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 18 20:21:23 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 27 17:42:00 2011 -0400"
      },
      "message": "SUNRPC: Deal with the lack of a SYN_SENT sk-\u003esk_state_change callback...\n\nThe TCP connection state code depends on the state_change() callback\nbeing called when the SYN_SENT state is set. However the networking layer\ndoesn\u0027t actually call us back in that case.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "246408dcd5dfeef2df437ccb0ef4d6ee87805f58",
      "tree": "681179a81ef914616f33edf83129a716081b9054",
      "parents": [
        "b8413f98f997bb3ed7327e6d7117e7e91ce010c3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 22 18:40:10 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 22 18:42:33 2011 -0400"
      },
      "message": "SUNRPC: Never reuse the socket port after an xs_close()\n\nIf we call xs_close(), we\u0027re in one of two situations:\n - Autoclose, which means we don\u0027t expect to resend a request\n - bind+connect failed, which probably means the port is in use\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4cea288aaf0e11647880cc487350b1dc45d9febc",
      "tree": "6ea19d6d0b7b833f39077941a795f83b81448b36",
      "parents": [
        "3fa0b4e201d254b52a251fa348bd53e53000cff6"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Feb 22 21:54:34 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:58 2011 -0500"
      },
      "message": "sunrpc: Propagate errors from xs_bind() through xs_create_sock()\n\nxs_create_sock() is supposed to return a pointer or an ERR_PTR-encoded\nerror, but it currently returns 0 if xs_bind() fails.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: stable@kernel.org [v2.6.37]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "f0418aa4b1103f959d64dc18273efa04ee0140e9",
      "tree": "01457cfe70d614dcdb12759247212602c2c2c008",
      "parents": [
        "99de8ea962bbc11a51ad4c52e3dc93bee5f6ba70"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 08 13:48:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n\nThis allows us to reuse the xprt associated with a server connection if\none has already been set up.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "99de8ea962bbc11a51ad4c52e3dc93bee5f6ba70",
      "tree": "1cda6aaeabe8fc4e3502104005c06a3888bb0bf4",
      "parents": [
        "d75faea330dbd1873c9094e9926ae306590c0998"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Dec 08 12:45:44 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: keep backchannel xprt as long as server connection\n\nMultiple backchannels can share the same tcp connection; from rfc 5661 section\n2.10.3.1:\n\n\tA connection\u0027s association with a session is not exclusive.  A\n\tconnection associated with the channel(s) of one session may be\n\tsimultaneously associated with the channel(s) of other sessions\n\tincluding sessions associated with other client IDs.\n\nHowever, multiple backchannels share a connection, they must all share\nthe same xid stream (hence the same rpc_xprt); the only way we have to\nmatch replies with calls at the rpc layer is using the xid.\n\nSo, keep the rpc_xprt around as long as the connection lasts, in case\nwe\u0027re asked to use the connection as a backchannel again.\n\nRequests to create new backchannel clients over a given server\nconnection should results in creating new clients that reuse the\nexisting rpc_xprt.\n\nBut to start, just reject attempts to associate multiple rpc_xprt\u0027s with\nthe same underlying bc_xprt.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d75faea330dbd1873c9094e9926ae306590c0998",
      "tree": "36b8e50ad2d94c75e77dacd98ff02036ddd0f65f",
      "parents": [
        "dcbeaa68dbbdacbbb330a86c7fc95a28473fc209"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Nov 30 19:15:01 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 15:04:10 2011 -0500"
      },
      "message": "rpc: move sk_bc_xprt to svc_xprt\n\nThis seems obviously transport-level information even if it\u0027s currently\nused only by the server socket code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "afe2c511fb2d75f1515081ff1be15bd79cfe722d",
      "tree": "28aa74e9e0c654a95bf3306101e10ac1d16919d1",
      "parents": [
        "2d64672ed38721b7a3815009d79bfb90a1f34a17"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 14 16:21:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 15 10:56:11 2010 +0100"
      },
      "message": "workqueue: convert cancel_rearming_delayed_work[queue]() users to cancel_delayed_work_sync()\n\ncancel_rearming_delayed_work[queue]() has been superceded by\ncancel_delayed_work_sync() quite some time ago.  Convert all the\nin-kernel users.  The conversions are completely equivalent and\ntrivial.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: netdev@vger.kernel.org\nCc: Anton Vorontsov \u003ccbou@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: xfs-masters@oss.sgi.com\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: netfilter-devel@vger.kernel.org\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: linux-nfs@vger.kernel.org\n"
    },
    {
      "commit": "4390110fef9e5c64e10c6ca19d586932242c9a8a",
      "tree": "f2f26fe291c8b4e424b97ac57370b33e0c006568",
      "parents": [
        "a4dd8dce14014665862ce7911b38cb2c69e366dd",
        "42d7ba3d6d56a6cbc773284896108b1e2ebcee81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux: (99 commits)\n  svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n  svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n  svcrpc: assume svc_delete_xprt() called only once\n  svcrpc: never clear XPT_BUSY on dead xprt\n  nfsd4: fix connection allocation in sequence()\n  nfsd4: only require krb5 principal for NFSv4.0 callbacks\n  nfsd4: move minorversion to client\n  nfsd4: delay session removal till free_client\n  nfsd4: separate callback change and callback probe\n  nfsd4: callback program number is per-session\n  nfsd4: track backchannel connections\n  nfsd4: confirm only on succesful create_session\n  nfsd4: make backchannel sequence number per-session\n  nfsd4: use client pointer to backchannel session\n  nfsd4: move callback setup into session init code\n  nfsd4: don\u0027t cache seq_misordered replies\n  SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n  SUNRPC: Use conventional switch statement when reclassifying sockets\n  sunrpc/xprtrdma: clean up workqueue usage\n  sunrpc: Turn list_for_each-s into the ..._entry-s\n  ...\n\nFix up trivial conflicts (two different deprecation notices added in\nseparate branches) in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "9247685088398cf21bcb513bd2832b4cd42516c4",
      "tree": "af6e9cd7d168903912895cc80849ec4cc43a9535",
      "parents": [
        "4232e8634ad82c5a53389e4016de15a8b15c09c3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Oct 20 11:53:01 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:47 2010 -0400"
      },
      "message": "SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n\nThe source address field in the transport\u0027s sock_xprt is initialized\nONLY IF the RPC application passed a pointer to a source address\nduring the call to rpc_create().  However, xs_bind() subsequently uses\nthe value of this field without regard to whether the source address\nwas initialized during transport creation or not.\n\nSo far we\u0027ve been lucky: the uninitialized value of this field is\nzeroes.  xs_bind(), until recently, used only the sin[6]_addr field in\nthis sockaddr, and all zeroes is a valid value for this: it means\nANYADDR.  This is a happy coincidence.\n\nHowever, xs_bind() now wants to use the sa_family field as well, and\nexpects it to be initialized to something other than zero.\n\nTherefore, the source address sockaddr field should be fully\ninitialized at transport create time in _every_ case, not just when\nthe RPC application wants to use a specific bind address.\n\nBruce added a workaround for this missing initialization by adjusting\ncommit 6bc9638a, but the \"right\" way to do this is to ensure that the\nsource address sockaddr is always correctly initialized from the\nget-go.\n\nThis patch doesn\u0027t introduce a behavior change.  It\u0027s simply a\nclean-up of Bruce\u0027s fix, to prevent future problems of this kind.  It\nmay look like overkill, but\n\n  a) it clearly documents the default initial value of this field,\n\n  b) it doesn\u0027t assume that the sockaddr_storage memory is first\n     initialized to any particular value, and\n\n  c) it will fail verbosely if some unknown address family is passed\n     in\n\nOriginally introduced by commit d3bc9a1d.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4232e8634ad82c5a53389e4016de15a8b15c09c3",
      "tree": "b834b51f3856ccfa23bf330e16ab480d3b3cbb7e",
      "parents": [
        "a25e758c5fa1137e1bbc440194e55f7c59177145"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Oct 20 11:52:51 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 21 10:11:46 2010 -0400"
      },
      "message": "SUNRPC: Use conventional switch statement when reclassifying sockets\n\nClean up.\n\nDefensive coding: If \"family\" is ever something that is neither\nAF_INET nor AF_INET6, xs_reclassify_socket6() is not the appropriate\ndefault action.  Choose to do nothing in that case.\n\nIntroduced by commit 6bc9638a.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "50fa0d40a9d601bb8e6c9a595e90940bc846f7df",
      "tree": "70cff33f36dd95e1b1de74fa09d32fcec9e3b2ae",
      "parents": [
        "c636b572e00e38855dc7a56a0fa438dd835f39de"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 20:49:35 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:16 2010 -0400"
      },
      "message": "sunrpc: Remove dead \"else\" branch from bc xprt creation\n\nSince the xprt in question is forcibly set to be bound the else\nbranch of this check is unneeded.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8c14ff2aaf26d58aa2258a59bd419c906d105938",
      "tree": "b6917bbcf6791fab51b1582a57813941a00e4082",
      "parents": [
        "cdd518d524b49e6e80b109bf985376456a2985ce"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:58:02 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Remove UDP worker wrappers\n\nSame for UDP sockets creation paths.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cdd518d524b49e6e80b109bf985376456a2985ce",
      "tree": "875aab959d443e7eb48071454d4ea3f009d80829",
      "parents": [
        "7dfe1fc36278c3aa0db29356c491db6353678e98"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:57:40 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Remove TCP worker wrappers\n\nThe v4 and the v6 wrappers only pass the respective family\nto the xs_tcp_setup_socket. This family can be taken from the\nxprt\u0027s sockaddr.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7dfe1fc36278c3aa0db29356c491db6353678e98",
      "tree": "775b8ea3f91155cbad9601a15d52bbdd67b0a6f3",
      "parents": [
        "6bc9638ab495516f8a34d2ae48f2f43f145e186f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:57:11 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Pass family to setup_socket calls\n\nNow we have a single socket creation routine and can call it\ndirectly from the setup_socket routines.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6bc9638ab495516f8a34d2ae48f2f43f145e186f",
      "tree": "1a6b139e954b56e6fb24892a832b43c5eb6ad8ed",
      "parents": [
        "beb59b68280d9779cc16591115547678d1c74a66"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:56:38 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Merge xs_create_sock code\n\nAfter xs_bind is merged it\u0027s easy to merge its callers.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[bfields@redhat.com: fix address family initialization]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "beb59b68280d9779cc16591115547678d1c74a66",
      "tree": "12e6bd18bba78f67793d6a99522705f2e9e72d77",
      "parents": [
        "573018c07e040b2c3f3cb8251f66fa4a5cb7425d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Oct 05 15:53:08 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Merge the xs_bind code\n\nThere\u0027s the only difference betseen the xs_bind4 and the\nxs_bind6 - the size of sockaddr structure they use.\n\nFortunatelly its size can be indirectly get from the transport.\n\nChange since v1:\n* use sockaddr_storage instead of sockaddr\n* use rpc_set_port instead of manual port assigning\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[bfields@redhat.com: fix address family initialization]\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "573018c07e040b2c3f3cb8251f66fa4a5cb7425d",
      "tree": "179674de7b92fd31b9e83bc64a82092de52cf504",
      "parents": [
        "22d44a7d8a03456aa6d0a047c051aa28728e6ecd"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:55:38 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Call xs_create_sockX directly from setup_socket\n\nRemove now unneeded wrappers that just add type and protocol\nto socket creation callback.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22d44a7d8a03456aa6d0a047c051aa28728e6ecd",
      "tree": "63ab8ec64240e7273a7628c64e9f4b728a5b5d6b",
      "parents": [
        "22f793268de3b4dff8abfcd873ba7afc1f34224f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:54:55 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:15 2010 -0400"
      },
      "message": "sunrpc: Factor out v6 sockets creation\n\nSame patch for v6 protocols.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22f793268de3b4dff8abfcd873ba7afc1f34224f",
      "tree": "0e67fb80ab92a83a07cfe2b21648e80e44a281ed",
      "parents": [
        "b65c0310611af73569f94c526a1e2323d99b380a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:54:26 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Factor out v4 sockets creation\n\nThe UDPv4 and TCPv4 socket creation callbacks now look very similar.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b65c0310611af73569f94c526a1e2323d99b380a",
      "tree": "6bae1f1aa2681d1359a89412420f95009c40b1b9",
      "parents": [
        "58dddac9c55c604f01152832c1c3d2c17a5adea9"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:53:46 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Factor out udp sockets creation\n\nMake it look like the TCP sockets creation.\nUnfortunately the git diff made the patch look messy :(\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "58dddac9c55c604f01152832c1c3d2c17a5adea9",
      "tree": "5ab5d5d9cc2db6930bed95ad65e51f79b6c63aa1",
      "parents": [
        "a9f5f0f7bf72f3f1451e844681fb3cb5d0b1c80d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:52:55 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Remove duplicate xprt/transport arguments from calls\n\nThe xs_tcp_reuse_connection takes the xprt only to pass it down\nto the xs_abort_connection. The later one can get it from the given\ntransport itself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a9f5f0f7bf72f3f1451e844681fb3cb5d0b1c80d",
      "tree": "74ecbabea35a7f7b7995a49a25ada7fb8345116c",
      "parents": [
        "baaf4e487a9c42b345bde14698fd566f864c9287"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:52:25 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Get xprt pointer once in xs_tcp_setup_socket\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "baaf4e487a9c42b345bde14698fd566f864c9287",
      "tree": "10da679b1e2cf660d0e960afc07d4f2393cf0ebb",
      "parents": [
        "5d4ec932972a0dd5486c59909e62dc62105d065c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:51:56 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Remove unused sock arg from xs_next_srcport\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5d4ec932972a0dd5486c59909e62dc62105d065c",
      "tree": "ebd90fe601b7db72050a750a9984830cc894d702",
      "parents": [
        "4a84386fc27fdc7d2ea69fdbc641008e8f943159"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Oct 04 16:51:23 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Oct 19 10:48:14 2010 -0400"
      },
      "message": "sunrpc: Remove unused sock arg from xs_get_srcport\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "14ec63c3336af7ea5445e0d8f4d26ba3041e40b3",
      "tree": "d81dee6a73cb604c90efd8add86e63a143bcd429",
      "parents": [
        "721db93a55dad71bb89e7d11cc6be1f180ec3f2d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:06:57 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:19:00 2010 -0400"
      },
      "message": "sunrpc: Create sockets in net namespaces\n\nThe context is already known in all the sock_create callers.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "37aa2133731d9231eb834f700119f0d3f1ed2664",
      "tree": "2b4da236e76d590fb1bd675e4401af5d1ecff327",
      "parents": [
        "9a23e332ec621d36e52cc7a978abc0917067b1aa"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:05:43 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:58 2010 -0400"
      },
      "message": "sunrpc: Tag rpc_xprt with net\n\nThe net is known from the xprt_create and this tagging will also\ngive un the context in the conntection workers where real sockets\nare created.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e204e621b4160c802315bc2d0fa335337c0d62e8",
      "tree": "f61889925880484b71ce8b5dbef9a95c3a3b4acb",
      "parents": [
        "bd1722d4316e42a12fe6337ebe34d7e1e2c088b2"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:03:13 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:53 2010 -0400"
      },
      "message": "sunrpc: Factor out rpc_xprt freeing\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bd1722d4316e42a12fe6337ebe34d7e1e2c088b2",
      "tree": "358d45aaf5fb08a177fd6fbe5dcf8872160c30fc",
      "parents": [
        "2b44f1ba40914777f4b1075254ba97663d4e2574"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Wed Sep 29 16:02:43 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Oct 01 17:18:52 2010 -0400"
      },
      "message": "sunrpc: Factor out rpc_xprt allocation\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f064af1e500a2bf4607706f0f458163bdb2a6ea5",
      "tree": "ebbbd1c3c00030c70cab6fe587a5c03252a46ebc",
      "parents": [
        "605c82bab5abe0816e5e32716875c245f89f39da"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 12:43:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 24 22:26:10 2010 -0700"
      },
      "message": "net: fix a lockdep splat\n\nWe have for each socket :\n\nOne spinlock (sk_slock.slock)\nOne rwlock (sk_callback_lock)\n\nPossible scenarios are :\n\n(A) (this is used in net/sunrpc/xprtsock.c)\nread_lock(\u0026sk-\u003esk_callback_lock) (without blocking BH)\n\u003cBH\u003e\nspin_lock(\u0026sk-\u003esk_slock.slock);\n...\nread_lock(\u0026sk-\u003esk_callback_lock);\n...\n\n(B)\nwrite_lock_bh(\u0026sk-\u003esk_callback_lock)\nstuff\nwrite_unlock_bh(\u0026sk-\u003esk_callback_lock)\n\n(C)\nspin_lock_bh(\u0026sk-\u003esk_slock)\n...\nwrite_lock_bh(\u0026sk-\u003esk_callback_lock)\nstuff\nwrite_unlock_bh(\u0026sk-\u003esk_callback_lock)\nspin_unlock_bh(\u0026sk-\u003esk_slock)\n\nThis (C) case conflicts with (A) :\n\nCPU1 [A]                         CPU2 [C]\nread_lock(callback_lock)\n\u003cBH\u003e                             spin_lock_bh(slock)\n\u003cwait to spin_lock(slock)\u003e\n                                 \u003cwait to write_lock_bh(callback_lock)\u003e\n\nWe have one problematic (C) use case in inet_csk_listen_stop() :\n\nlocal_bh_disable();\nbh_lock_sock(child); // spin_lock_bh(\u0026sk-\u003esk_slock)\nWARN_ON(sock_owned_by_user(child));\n...\nsock_orphan(child); // write_lock_bh(\u0026sk-\u003esk_callback_lock)\n\nlockdep is not happy with this, as reported by Tetsuo Handa\n\nIt seems only way to deal with this is to use read_lock_bh(callbacklock)\neverywhere.\n\nThanks to Jarek for pointing a bug in my first attempt and suggesting\nthis solution.\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nTested-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nTested-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "763008c4357b73c8d18396dfd8d79dc58fa3f99d",
      "tree": "818add523a6b81b560bebac727c57c6a8ea6fd63",
      "parents": [
        "d1126ad907ce197ff45fbc2369fbeaf8ae6f75a8",
        "0a377cff9428af2da2b293d11e07bc4dbf064ee5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 15:45:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 15:45:23 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix an Oops in the NFSv4 atomic open code\n  NFS: Fix the selection of security flavours in Kconfig\n  NFS: fix the return value of nfs_file_fsync()\n  rpcrdma: Fix SQ size calculation when memreg is FRMR\n  xprtrdma: Do not truncate iova_start values in frmr registrations.\n  nfs: Remove redundant NULL check upon kfree()\n  nfs: Add \"lookupcache\" to displayed mount options\n  NFS: allow close-to-open cache semantics to apply to root of NFS filesystem\n  SUNRPC: fix NFS client over TCP hangs due to packet loss (Bug 16494)\n"
    },
    {
      "commit": "9bbb9e5a33109b2832e2e63dcc7a132924ab374b",
      "tree": "87270ed3a61d0d0e654a61c8d44504cdef330192",
      "parents": [
        "a14fe249a8f74269c9e636bcbaa78f5bdb354ce3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:12 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:13 2010 +0930"
      },
      "message": "param: use ops in struct kernel_param, rather than get and set fns directly\n\nThis is more kernel-ish, saves some space, and also allows us to\nexpand the ops without breaking all the callers who are happy for the\nnew members to be NULL.\n\nThe few places which defined their own param types are changed to the\nnew scheme (more which crept in recently fixed in following patches).\n\nSince we\u0027re touching them anyway, we change get() and set() to take a\nconst struct kernel_param (which they really are).  This causes some\nharmless warnings until we fix them (in following patches).\n\nTo reduce churn, module_param_call creates the ops struct so the callers\ndon\u0027t have to change (and casts the functions to reduce warnings).\nThe modern version which takes an ops struct is called module_param_cb.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ville Syrjala \u003csyrjala@sci.fi\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Alessandro Rubini \u003crubini@ipvvis.unipv.it\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-input@vger.kernel.org\nCc: linux-fbdev-devel@lists.sourceforge.net\nCc: linux-nfs@vger.kernel.org\nCc: netdev@vger.kernel.org\n"
    },
    {
      "commit": "669502ff31d7dba1849aec7ee2450a3c61f57d39",
      "tree": "a56e4958f71efcc5e9f844255e3d437e00306a06",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534"
      ],
      "author": {
        "name": "Andy Chittenden",
        "email": "andyc.bluearc@gmail.com",
        "time": "Tue Aug 10 10:19:53 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 10 10:19:53 2010 -0400"
      },
      "message": "SUNRPC: fix NFS client over TCP hangs due to packet loss (Bug 16494)\n\nWhen reusing a TCP connection, ensure that it\u0027s aborted if a previous\nshutdown attempt has been made on that connection so that the RPC over\nTCP recovery mechanism succeeds.\n\nSigned-off-by: Andy Chittenden \u003candyc.bluearc@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b76ce56192bcf618013fb9aecd83488cffd645cc",
      "tree": "1a071da8b3e4fcc1fbfe67c99cc622372502edb2",
      "parents": [
        "f799bdb355edaabd81b778087613409a8932fbe9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 16 13:57:32 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:21:18 2010 -0400"
      },
      "message": "SUNRPC: Fix a re-entrancy bug in xs_tcp_read_calldir()\n\nIf the attempt to read the calldir fails, then instead of storing the read\nbytes, we currently discard them. This leads to a garbage final result when\nupon re-entry to the same routine, we read the remaining bytes.\n\nFixes the regression in bugzilla number 16213. Please see\n    https://bugzilla.kernel.org/show_bug.cgi?id\u003d16213\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0a68b0bed08eeb7ec62e0125f17856b1ccb1ea4b",
      "tree": "2f131868f81599273693d0481a4166277c4f1077",
      "parents": [
        "b1cdc4670b9508fcd47a15fbd12f70d269880b37"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 26 08:42:24 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:43:50 2010 -0400"
      },
      "message": "sunrpc: fix leak on error on socket xprt setup\n\nAlso collect exit code together while we\u0027re at it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "3fa21e07e6acefa31f974d57fba2b6920a7ebd1a",
      "tree": "4254644ef2579e9ac96db6ec0535b5e4231fd18e",
      "parents": [
        "b60b6592baa69c43a5a0f55d6300a7feaab15338"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 17 23:08:21 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 23:23:14 2010 -0700"
      },
      "message": "net: Remove unnecessary returns from void function()s\n\nThis patch removes from net/ (but not any netfilter files)\nall the unnecessary return; statements that precede the\nlast closing brace of void functions.\n\nIt does not remove the returns that are immediately\npreceded by a label as gcc doesn\u0027t like that.\n\nDone via:\n$ grep -rP --include\u003d*.[ch] -l \"return;\\n}\" net/ | \\\n  xargs perl -i -e \u0027local $/ ; while (\u003c\u003e) { s/\\n[ \\t\\n]+return;\\n}/\\n}/g; print; }\u0027\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d60dbb20a74c2cfa142be0a34dac3c6547ea086c",
      "tree": "7af95739f8fbbef11f490b5b58bf639dbbe8a181",
      "parents": [
        "9c7e7e23371e629dbb3b341610a418cdf1c19d91"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 13 12:51:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:36 2010 -0400"
      },
      "message": "SUNRPC: Move the task-\u003etk_bytes_sent and tk_rtt to struct rpc_rqst\n\nIt seems strange to maintain stats for bytes_sent in one structure, and\nbytes received in another. Try to assemble all the RPC request-related\nstats in struct rpc_rqst\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "712a4338669d7d57f952244abb608e6ac07e39da",
      "tree": "97875575e55a85ac02acc39bb7fe6a6139c71885",
      "parents": [
        "ff8399709e41bf72b4cb145612a0f9a9f7283c83"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 12 17:50:23 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:33 2010 -0400"
      },
      "message": "SUNRPC: Fix xs_setup_bc_tcp()\n\nIt is a BUG for anybody to call this function without setting\nargs-\u003ebc_xprt. Trying to return an error value is just wrong, since the\nuser cannot fix this: it is a programming error, not a user error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bbc72cea58f671665b6362be0d4e391813ac0eee",
      "tree": "e70a35d3bc05ece4a532514893fec151aee2bd46",
      "parents": [
        "9bc4e3ca46e4eb9cb434de4175c6041d00bbdca3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri May 07 13:34:27 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:32 2010 -0400"
      },
      "message": "SUNRPC: RPC metrics and RTT estimator should use same RTT value\n\nCompute an RPC request\u0027s RTT once, and use that value both for reporting\nRPC metrics, and for adjusting the RTT context used by the RPC client\u0027s RTT\nestimator algorithm.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a8ce4a8f37fef0a09a1e920c2e09f67a80426c7e",
      "tree": "cd3c11c87fa63c8bf15e74f311560a83637fc3fa",
      "parents": [
        "0b9e79431377df452348e78262dd5a3dc359eeef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:42:12 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:30 2010 -0400"
      },
      "message": "SUNRPC: Fail over more quickly on connect errors\n\nWe should not allow soft tasks to wait for longer than the major timeout\nperiod when waiting for a reconnect to occur.\n\nRemove the field xprt-\u003econnect_timeout since it has been obsoleted by\nxprt-\u003ereestablish_timeout.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0b9e79431377df452348e78262dd5a3dc359eeef",
      "tree": "0a69324b177e2db40e88988b83e0782dd9d98990",
      "parents": [
        "19445b99b6d66af661c586c052de23110731a502"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:41:57 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:29 2010 -0400"
      },
      "message": "SUNRPC: Move the test for XPRT_CONNECTING into xprt_connect()\n\nThis fixes a bug with setting xprt-\u003estat.connect_start.\n\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c9acb42ef1904d15d0fb315061cefbe638f67f3a",
      "tree": "7c94dff168dfc90a279990cb2860cce626ae76a3",
      "parents": [
        "cdead7cf12896c0e50a8be2e52de52c364603095"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 19 15:36:22 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 22 05:32:44 2010 -0400"
      },
      "message": "SUNRPC: Fix a use after free bug with the NFSv4.1 backchannel\n\nThe -\u003erelease_request() callback was designed to allow the transport layer\nto do housekeeping after the RPC call is done. It cannot be used to free\nthe request itself, and doing so leads to a use-after-free bug in\nxprt_release().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c34691abe23741bfc7d2514efd5a39f0e0ecb06",
      "tree": "f5c673eda066f4d7870d502d52d705b629eb8c03",
      "parents": [
        "5f87e54d7d6f58e8f15819cf8901860d9512e8b4",
        "cfbc0683af235106e7dabe92003870b82ad6f0ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:50:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:50:09 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: ensure bdi_unregister is called on mount failure.\n  NFS: Avoid a deadlock in nfs_release_page\n  NFSv4: Don\u0027t ignore the NFS_INO_REVAL_FORCED flag in nfs_revalidate_inode()\n  nfs4: Make the v4 callback service hidden\n  nfs: fix unlikely memory leak\n  rpc client can not deal with ENOSOCK, so translate it into ENOCONN\n"
    },
    {
      "commit": "d89b218b801fd93ea95880f1c7fde348cbcc51c5",
      "tree": "cd3c34e1811f9b2bc10ecfb957bf26cbd04c677e",
      "parents": [
        "80a186074e72e2cd61f6716d90cf32ce54981a56",
        "bec68ff1637ca00bb1585a03a7be8a13380084de"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:50:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:50:18 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (108 commits)\n  bridge: ensure to unlock in error path in br_multicast_query().\n  drivers/net/tulip/eeprom.c: fix bogus \"(null)\" in tulip init messages\n  sky2: Avoid rtnl_unlock without rtnl_lock\n  ipv6: Send netlink notification when DAD fails\n  drivers/net/tg3.c: change the field used with the TG3_FLAG_10_100_ONLY constant\n  ipconfig: Handle devices which take some time to come up.\n  mac80211: Fix memory leak in ieee80211_if_write()\n  mac80211: Fix (dynamic) power save entry\n  ipw2200: use kmalloc for large local variables\n  ath5k: read eeprom IQ calibration values correctly for G mode\n  ath5k: fix I/Q calibration (for real)\n  ath5k: fix TSF reset\n  ath5k: use fixed antenna for tx descriptors\n  libipw: split ieee-\u003enetworks into small pieces\n  mac80211: Fix sta_mtx unlocking on insert STA failure path\n  rt2x00: remove KSEG1ADDR define from rt2x00soc.h\n  net: add ColdFire support to the smc91x driver\n  asix: fix setting mac address for AX88772\n  ipv6 ip6_tunnel: eliminate unused recursion field from ip6_tnl{}.\n  net: Fix dev_mc_add()\n  ...\n"
    },
    {
      "commit": "81160e66cca3d3a16b7d88e0e2dccfc5c76f36f9",
      "tree": "4bd45b3b0870989ab742a318dd2940b94ca1f80f",
      "parents": [
        "fc0b579168cbe737c83c6b9bbfe265d3ae6baca6"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 08 12:15:59 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 08 12:15:59 2010 -0800"
      },
      "message": "net/sunrpc: Convert (void)snprintf to snprintf\n\n(Applies on top of \"Remove uses of NIPQUAD, use %pI4\")\n\nCasts to void of snprintf are most uncommon in kernel source.\n9 use casts, 1301 do not.\n\nRemove the remaining uses in net/sunrpc/\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc0b579168cbe737c83c6b9bbfe265d3ae6baca6",
      "tree": "a9818961a11c7322cb585b03859ebf497e8db62f",
      "parents": [
        "e9dcd1613f0ac0b3573b7d813a2c5672cd8302eb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 08 12:15:28 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 08 12:15:28 2010 -0800"
      },
      "message": "net/sunrpc: Remove uses of NIPQUAD, use %pI4\n\nOriginally submitted Jan 1, 2010\nhttp://patchwork.kernel.org/patch/71221/\n\nConvert NIPQUAD to the %pI4 format extension where possible\nConvert %02x%02x%02x%02x/NIPQUAD to %08x/ntohl\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5fe46e9d733f19a880ef7e516002bd4c2b833e14",
      "tree": "e63ececb8fa5100b3f2514b0d2e9702086ccd101",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176"
      ],
      "author": {
        "name": "Bian Naimeng",
        "email": "biannm@cn.fujitsu.com",
        "time": "Mon Mar 08 14:49:01 2010 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 08 14:05:57 2010 -0500"
      },
      "message": "rpc client can not deal with ENOSOCK, so translate it into ENOCONN\n\nIf NFSv4 client send a request before connect, or the old connection was broken\nbecause a ETIMEOUT error catched by call_status, -\u003esend_request will return\nENOSOCK, but rpc layer can not deal with it, so make sure -\u003esend_request can\ntranslate ENOSOCK into ENOCONN.\n\nSigned-off-by: Bian Naimeng \u003cbiannm@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9fcfe0c83c3b04a759cde6b8c5f961237f17808b",
      "tree": "a0f80208f574745eb73f059e6d449133d5128b9f",
      "parents": [
        "0f79fd6f5c52e05918e44996b0a1b18383d0fbc2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 02 13:06:21 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 02 13:06:21 2010 -0500"
      },
      "message": "SUNRPC: Handle EINVAL error returns from the TCP connect operation\n\nThis can, for instance, happen if the user specifies a link local IPv6\naddress.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5a51f13adf7909caec2f8182767485c30e21364e",
      "tree": "1d7955951f9b863b9cb30318bbc405d0e7f7a90c",
      "parents": [
        "7a88efe9760de3bc75bde61b0a4c56dbb6cf2494"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Thu Jan 14 15:38:31 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 10 08:30:53 2010 -0500"
      },
      "message": "xprtsock.c: make bc_{malloc/free} static\n\nxprtsock.c: make bc_{malloc/free} static\n\nThe server backchannel buf_alloc and buf_free methods should\nbe static since they are not used outside this file.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52c9948b1fd80381ba5a9a87dcc4fbe3cf4979b8",
      "tree": "7bca6a20560f428442f18450df0948774f982df0",
      "parents": [
        "f40542532e96dda5506eb76badea322f2ae4731c",
        "190f38e5cedc910940b1da9015f00458c18f97b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Dec 13 13:56:27 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Dec 13 13:56:27 2009 -0500"
      },
      "message": "Merge branch \u0027nfs-for-2.6.33\u0027\n"
    },
    {
      "commit": "09a21c4102c8f7893368553273d39c0cadedf9af",
      "tree": "b0a051dbb02d48aa95383e39cc7ce6f503d6f33b",
      "parents": [
        "206a134b4d8abf57cd34dffacf993869355b9aac"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Allow RPCs to fail quickly if the server is unreachable\n\nThe kernel sometimes makes RPC calls to services that aren\u0027t running.\nBecause the kernel\u0027s RPC client always assumes the hard retry semantic\nwhen reconnecting a connection-oriented RPC transport, the underlying\nreconnect logic takes a long while to time out, even though the remote\nmay have responded immediately with ECONNREFUSED.\n\nIn certain cases, like upcalls to our local rpcbind daemon, or for NFS\nmount requests, we\u0027d like the kernel to fail immediately if the remote\nservice isn\u0027t reachable.  This allows another transport to be tried\nimmediately, or the pending request can be abandoned quickly.\n\nIntroduce a per-request flag which controls how call_transmit_status()\nbehaves when request transmission fails because the server cannot be\nreached.\n\nWe don\u0027t want soft connection semantics to apply to other errors.  The\ndefault case of the switch statement in call_transmit_status() no\nlonger falls through; the fall through code is copied to the default\ncase, and a \"break;\" is added.\n\nThe transport\u0027s connection re-establishment timeout is also ignored for\nsuch requests.  We want the request to fail immediately, so the\nreconnect delay is skipped.  Additionally, we don\u0027t want a connect\nfailure here to further increase the reconnect timeout value, since\nthis request will not be retried.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d4561110a3e9fa742aeec6717248a491dfb1878",
      "tree": "689e2abf19940416ce597ba56ed31026ff59bd21",
      "parents": [
        "86926d0096279b9739ceeff40f68d3c33b9119a9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 16 03:11:48 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 18 08:37:40 2009 -0800"
      },
      "message": "sysctl: Drop \u0026 in front of every proc_handler.\n\nFor consistency drop \u0026 in front of every proc_handler.  Explicity\ntaking the address is unnecessary and it prevents optimizations\nlike stubbing the proc_handlers to NULL.\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "f8572d8f2a2ba75408b97dc24ef47c83671795d7",
      "tree": "052506a457939fea00d138d3a982d778df34e14c",
      "parents": [
        "86b1bc68e2f4244e4ea5db5458df9d19259fbb30"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 05 13:32:03 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:05:06 2009 -0800"
      },
      "message": "sysctl net: Remove unused binary sysctl code\n\nNow that sys_sysctl is a compatiblity wrapper around /proc/sys\nall sysctl strategy routines, and all ctl_name and strategy\nentries in the sysctl tables are unused, and can be\nrevmoed.\n\nIn addition neigh_sysctl_register has been modified to no longer\ntake a strategy argument and it\u0027s callers have been modified not\nto pass one.\n\nCc: \"David Miller\" \u003cdavem@davemloft.net\u003e\nCc: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "61d0a8e6a8049cea246ee7ec19b042d4ff1f6ef6",
      "tree": "ee84a7e5260be07af494a70076bb70202ac0428d",
      "parents": [
        "8a6e5deb8a8caa810fef2c525f5dbea2cfe04a47"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "message": "NFS/RPC: fix problems with reestablish_timeout and related code.\n\n\n[[resending with correct cc:  - \"vfs.kernel.org\" just isn\u0027t right!]]\n\nxprt-\u003ereestablish_timeout is used to cause TCP connection attempts to\nback off if the connection fails so as not to hammer the network,\nbut to still allow immediate connections when there is no reason to\nbelieve there is a problem.\n\nIt is not used for the first connection (when transport-\u003esock is NULL)\nbut only on reconnects.\n\nIt is currently set:\n\n a/ to 0 when xs_tcp_state_change finds a state of TCP_FIN_WAIT1\n    on the assumption that the client has closed the connection\n    so the reconnect should be immediate when needed.\n b/ to at least XS_TCP_INIT_REEST_TO when xs_tcp_state_change\n    detects TCP_CLOSING or TCP_CLOSE_WAIT on the assumption that the\n    server closed the connection so a small delay at least is\n    required.\n c/ as above when xs_tcp_state_change detects TCP_SYN_SENT, so that\n    it is never 0 while a connection has been attempted, else\n    the doubling will produce 0 and there will be no backoff.\n d/ to double is value (up to a limit) when delaying a connection,\n    thus providing exponential backoff and\n e/ to XS_TCP_INIT_REEST_TO in xs_setup_tcp as simple initialisation.\n\nSo you can see it is highly dependant on xs_tcp_state_change being\ncalled as expected.  However experimental evidence shows that\nxs_tcp_state_change does not see all state changes.\n(\"rpcdebug -m rpc trans\" can help show what actually happens).\n\nResults show:\n TCP_ESTABLISHED is reported when a connection is made.  TCP_SYN_SENT\n is never reported, so rule \u0027c\u0027 above is never effective.\n\n When the server closes the connection, TCP_CLOSE_WAIT and\n TCP_LAST_ACK *might* be reported, and TCP_CLOSE is always\n reported.  This rule \u0027b\u0027 above will sometimes be effective, but\n not reliably.\n\n When the client closes the connection, it used to result in\n TCP_FIN_WAIT1, TCP_FIN_WAIT2, TCP_CLOSE.  However since commit\n f75e674 (SUNRPC: Fix the problem of EADDRNOTAVAIL syslog floods on\n reconnect) we don\u0027t see *any* events on client-close.  I think this\n is because xs_restore_old_callbacks is called to disconnect\n xs_tcp_state_change before the socket is closed.\n In any case, rule \u0027a\u0027 no longer applies.\n\nSo all that is left are rule d, which successfully doubles the\ntimeout which is never rest, and rule e which initialises the timeout.\n\nEven if the rules worked as expected, there would be a problem because\na successful connection does not reset the timeout, so a sequence\nof events where the server closes the connection (e.g. during failover\ntesting) will cause longer and longer timeouts with no good reason.\n\nThis patch:\n\n - sets reestablish_timeout to 0 in xs_close thus effecting rule \u0027a\u0027\n - sets it to 0 in xs_tcp_data_ready to ensure that a successful\n   connection resets the timeout\n - sets it to at least XS_TCP_INIT_REEST_TO after it is doubled,\n   thus effecting rule c\n\nI have not reimplemented rule b and the new version of rule c\nseems sufficient.\n\nI suspect other code in xs_tcp_data_ready needs to be revised as well.\nFor example I don\u0027t think connect_cookie is being incremented as often\nas it should be.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f300baba5a1536070d6d77bf0c8c4ca999bb4f0f",
      "tree": "648d0020d9a9325cfcb07571d9f11a5c797ee900",
      "parents": [
        "908329f2c08b8b5af7b394f709b0ee9c43b93041"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Thu Sep 10 17:33:30 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Sep 13 15:46:15 2009 -0400"
      },
      "message": "nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n\n[sunrpc: change idle timeout value for the backchannel]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4cfc7e6019caa3e97d2a81c48c8d575d7b38d751",
      "tree": "8dced61360d385b115da94f9a4fd5f8d635c296d",
      "parents": [
        "6951867b9967066eda090f46ad91ce69e0ead611"
      ],
      "author": {
        "name": "Rahul Iyer",
        "email": "iyer@netapp.com",
        "time": "Thu Sep 10 17:32:28 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 11 15:04:16 2009 -0400"
      },
      "message": "nfsd41: sunrpc: Added rpc server-side backchannel handling\n\nWhen the call direction is a reply, copy the xid and call direction into the\nreq-\u003erq_private_buf.head[0].iov_base otherwise rpc_verify_header returns\nrpc_garbage.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[get rid of CONFIG_NFSD_V4_1]\n[sunrpc: refactoring of svc_tcp_recvfrom]\n[nfsd41: sunrpc: create common send routine for the fore and the back channels]\n[nfsd41: sunrpc: Use free_page() to free server backchannel pages]\n[nfsd41: sunrpc: Document server backchannel locking]\n[nfsd41: sunrpc: remove bc_connect_worker()]\n[nfsd41: sunrpc: Define xprt_server_backchannel()[\n[nfsd41: sunrpc: remove bc_close and bc_init_auto_disconnect dummy functions]\n[nfsd41: sunrpc: eliminate unneeded switch statement in xs_setup_tcp()]\n[nfsd41: sunrpc: Don\u0027t auto close the server backchannel connection]\n[nfsd41: sunrpc: Remove unused functions]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: change bc_sock to bc_xprt]\n[nfsd41: sunrpc: move struct rpc_buffer def into a common header file]\n[nfsd41: sunrpc: use rpc_sleep in bc_send_request so not to block on mutex]\n[removed cosmetic changes]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[sunrpc: add new xprt class for nfsv4.1 backchannel]\n[sunrpc: v2.1 change handling of auto_close and init_auto_disconnect operations for the nfsv4.1 backchannel]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n[reverted more cosmetic leftovers]\n[got rid of xprt_server_backchannel]\n[separated \"nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@netapp.com\u003e\n[sunrpc: change idle timeout value for the backchannel]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "976a6f921cad26651d25e73826c05c7a023f5fa4",
      "tree": "b06e283e3fe342bcf444328390b211bb155fd9dc",
      "parents": [
        "e576e05a73bc1a00cdf56630942dbada1bf280a1",
        "c05988cdb06237738d361ef82fbf4df1020aa3db"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:50 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:50 2009 -0400"
      },
      "message": "Merge branch \u0027patches_cel-for-2.6.32\u0027 into nfs-for-2.6.32\n"
    },
    {
      "commit": "9dc3b095b78347bfb02c324b5ee2e558f7267396",
      "tree": "8c9d43d43db5a130506d31293858cb65e73643d1",
      "parents": [
        "c740eff84bcfd63c0497ef880e80171931cb8222"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "message": "SUNRPC: Update xprt address strings after an rpcbind completes\n\nAfter a bind completes, update the transport instance\u0027s address\nstrings so debugging messages display the current port the transport\nis connected to.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c740eff84bcfd63c0497ef880e80171931cb8222",
      "tree": "a990bca471ca6334172787a17c6b9c833e48d682",
      "parents": [
        "fbfffbd5e74c5fa8c9165e110cb5899ec21e6364"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "message": "SUNRPC: Kill RPC_DISPLAY_ALL\n\nAt some point, I recall that rpc_pipe_fs used RPC_DISPLAY_ALL.\nCurrently there are no uses of RPC_DISPLAY_ALL outside the transport\nmodules themselves, so we can safely get rid of it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbfffbd5e74c5fa8c9165e110cb5899ec21e6364",
      "tree": "85d4c8a589e9796fe0b347b021db0a19d499b81d",
      "parents": [
        "f8b761eff1e49fde43dd940ac32b38cf7cee2a95"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "message": "SUNRPC: Rename sock_xprt.addr as sock_xprt.srcaddr\n\nClean up: Give the \"addr\" and \"port\" field less ambiguous names.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c877b849d302d1275452af80b7221a2555dc02e1",
      "tree": "7baf4099cbb235e9ee4d420f61208d10ecdc8c4d",
      "parents": [
        "ba809130bc260fce04141aca01ef9e068d32af2a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:36 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:36 2009 -0400"
      },
      "message": "SUNRPC: Use rpc_ntop() for constructing transport address strings\n\nClean up:  In addition to using the new generic rpc_ntop() and\nrpc_get_port() functions, have the RPC client compute the presentation\naddress buffer sizes dynamically using kstrdup().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba809130bc260fce04141aca01ef9e068d32af2a",
      "tree": "8aa5fe3f46c679346120f2c28848bf4446133a4c",
      "parents": [
        "a02d692611348f11ee1bc37431a883c3ff2de23e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:35 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:35 2009 -0400"
      },
      "message": "SUNRPC: Remove duplicate universal address generation\n\nRPC universal address generation is currently done in several places:\nrpcb_clnt.c, nfs4proc.c xprtsock.c, and xprtrdma.c.  Remove the\nredundant cases that convert a socket address to a universal\naddress.  The nfs4proc.c case takes a pre-formatted presentation\naddress string, not a socket address, so we\u0027ll leave that one.\n\nBecause the new uaddr constructor uses the recently introduced\nrpc_ntop(), it now supports proper \"::\" shorthanding for IPv6\naddresses.  This allows the kernel to register properly formed\nuniversal addresses with the local rpcbind service, in _all_ cases.\n\nThe kernel can now also send properly formed universal addresses in\nRPCB_GETADDR requests, and support link-local properly when\nencoding and decoding 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": "cbf1107126af2950623fafdaa5c9df43ab00f046",
      "tree": "101e9a26fc86218f567e5c99aad3ddadfdab2691",
      "parents": [
        "80e52aced138bb41b045a8595a87510f27d8d8c5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "SUNRPC: convert some sysctls into module parameters\n\nParameters like the minimum reserved port, and the number of slot entries\nshould really be module parameters rather than sysctls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81",
      "tree": "143956f878290e85de7c9130f465e862f587ee53",
      "parents": [
        "301933a0acfdec837fd8b4884093b3f0fff01d8a",
        "4bf259e3ae5015e73282ba66716c4a917e1264ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:13:00 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 18 18:13:44 2009 -0700"
      },
      "message": "Merge branch \u0027devel-for-2.6.31\u0027 into for-2.6.31\n\nConflicts:\n\tfs/nfs/client.c\n\tfs/nfs/super.c\n"
    },
    {
      "commit": "301933a0acfdec837fd8b4884093b3f0fff01d8a",
      "tree": "1f2412a30d710493179b1b3743cf30302872df15",
      "parents": [
        "3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8",
        "68f3f90133d56e0c38f04f991e662c2b21592b31"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 17:59:58 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 17:59:58 2009 -0700"
      },
      "message": "Merge commit \u0027linux-pnfs/nfs41-for-2.6.31\u0027 into nfsv41-for-2.6.31\n"
    },
    {
      "commit": "0d90ba1cd416525c4825c111db862d8b15a02e9b",
      "tree": "1f1571410b2d1b17eb8e503fc3b60450f93e9dee",
      "parents": [
        "55ae1aabfb108106dd095de2578ceef1c755a8b8"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:04 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:28 2009 -0700"
      },
      "message": "nfs41: Backchannel callback service helper routines\n\nExecutes the backchannel task on the RPC state machine using\nthe existing open connection previously established by the client.\n\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\n\nnfs41: Add bc_svc.o to sunrpc Makefile.\n\n[nfs41: bc_send() does not need to be exported outside RPC module]\n[nfs41: xprt_free_bc_request() need not be exported outside RPC module]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Update copyright]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "88b5ed73bcd0f21e008b6e303a02c8b7cb1199f4",
      "tree": "efe474f18f8c175b3bfc04f31e8723ed376cc804",
      "parents": [
        "3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:57 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:57 2009 -0700"
      },
      "message": "SUNRPC: Fix a missing \"break\" option in xs_tcp_setup_socket()\n\nIn the case of -EADDRNOTAVAIL and/or unhandled connection errors, we want\nto get rid of the existing socket and retry immediately, just as the\ncomment says. Currently we end up sleeping for a minute, due to the missing\n\"break\" statement.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44b98efdd0a205bdca2cb63493350d06ff6804b1",
      "tree": "d375e3a8a6084672f15e9b12bec082613448340e",
      "parents": [
        "4a8d70bfef01f8e6b27785e2625e88e9a80924a5"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:02 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 13:06:16 2009 -0700"
      },
      "message": "nfs41: New xs_tcp_read_data()\n\nHandles RPC replies and backchannel callbacks.  Traditionally the NFS\nclient has expected only RPC replies on its open connections.  With\nNFSv4.1, callbacks can arrive over an existing open connection.\n\nThis patch refactors the old xs_tcp_read_request() into an RPC reply handler:\nxs_tcp_read_reply(), a new backchannel callback handler: xs_tcp_read_callback(),\nand a common routine to read the data off the transport: xs_tcp_read_common().\nThe new xs_tcp_read_callback() queues callback requests onto a queue where\nthe callback service (a separate thread) is listening for the processing.\n\nThis patch incorporates work and suggestions from Rahul Iyer (iyer@netapp.com)\nand Benny Halevy (bhalevy@panasas.com).\n\nxs_tcp_read_callback() drops the connection when the number of expected\ncallbacks is exceeded.  Use xprt_force_disconnect(), ensuring tasks on\nthe pending queue are awaken on disconnect.\n\n[nfs41: Keep track of RPC call/reply direction with a flag]\n[nfs41: Preallocate rpc_rqst receive buffer for handling callbacks]\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: sunrpc: xs_tcp_read_callback() should use xprt_force_disconnect()]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Moves embedded #ifdefs into #ifdef function blocks]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "f4a2e418bfd03a1f25f515e8a92ecd584d96cfc1",
      "tree": "31ea603214b4c68c338af9373b85eedfe0c11275",
      "parents": [
        "18dca02aeb3c49dfce87c76be643b139d05cf647"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:22:54 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:43:46 2009 -0700"
      },
      "message": "nfs41: Process the RPC call direction\n\nReading and storing the RPC direction is a three step process.\n\n1. xs_tcp_read_calldir() reads the RPC direction, but it will not store it\nin the XDR buffer since the \u0027struct rpc_rqst\u0027 is not yet available.\n\n2. The \u0027struct rpc_rqst\u0027 is obtained during the TCP_RCV_COPY_DATA state.\nThis state need not necessarily be preceeded by the TCP_RCV_READ_CALLDIR.\nFor example, we may be reading a continuation packet to a large reply.\nTherefore, we can\u0027t simply obtain the \u0027struct rpc_rqst\u0027 during the\nTCP_RCV_READ_CALLDIR state and assume it\u0027s available during TCP_RCV_COPY_DATA.\n\nThis patch adds a new TCP_RCV_READ_CALLDIR flag to indicate the need to\nread the RPC direction.  It then uses TCP_RCV_COPY_CALLDIR to indicate the\nRPC direction needs to be saved after the \u0027struct rpc_rqst\u0027 has been allocated.\n\n3. The \u0027struct rpc_rqst\u0027 is obtained by the xs_tcp_read_data() helper\nfunctions.  xs_tcp_read_common() then saves the RPC direction in the XDR\nbuffer if TCP_RCV_COPY_CALLDIR is set.  This will happen when we\u0027re reading\nthe data immediately after the direction was read.  xs_tcp_read_common()\nthen clears this flag.\n\n[was nfs41: Skip past the RPC call direction]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: sunrpc: Add RPC direction back into the XDR buffer]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: sunrpc: Don\u0027t skip past the RPC call direction]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "18dca02aeb3c49dfce87c76be643b139d05cf647",
      "tree": "3e261efdba69b967500a36d8f65ac643c8693d76",
      "parents": [
        "34dc1ad752ad3f55b2a6e6cd8cfcf3504682fec7"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:22:53 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:43:45 2009 -0700"
      },
      "message": "nfs41: Add ability to read RPC call direction on TCP stream.\n\nNFSv4.1 callbacks can arrive over an existing connection. This patch adds\nthe logic to read the RPC call direction (call or reply). It does this by\nupdating the state machine to look for the call direction invoking\nxs_tcp_read_calldir(...) after reading the XID.\n\n[nfs41: Keep track of RPC call/reply direction with a flag]\n\nAs per 11/14/08 review of RFC 53/85.\n\nAdd a new flag to track whether the incoming message is an RPC call or an\nRPC reply.  TCP_RPC_REPLY is set in the \u0027struct sock_xprt\u0027 tcp_flags in\nxs_tcp_read_calldir() if the message is an RPC reply sent on the forechannel.\nIt is cleared if the message is an RPC request sent on the back channel.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f75e6745aa3084124ae1434fd7629853bdaf6798",
      "tree": "bfd605c079e8a1dd6ad008acc6031441c220c845",
      "parents": [
        "414772fa496273d1a93cefa6dab790f5fdf9de82"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 21 17:18:20 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:35:08 2009 -0700"
      },
      "message": "SUNRPC: Fix the problem of EADDRNOTAVAIL syslog floods on reconnect\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d13034\n\nIf the port gets into a TIME_WAIT state, then we cannot reconnect without\nbinding to a new port.\n\nTested-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nTested-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc85906110e26fe8537c3bdbc08a74ae8110030b",
      "tree": "891813098ede3dba4d5ff3b83b1f7b491367ad2f",
      "parents": [
        "c09bca786ff941ed17c5f381c4eca5b106808c51",
        "c69da774b28e01e062e0a3aba7509f2dcfd2a11a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into for-linus\n"
    },
    {
      "commit": "08abe18af1f78ee80c3c3a5ac47c3e0ae0beadf6",
      "tree": "2be39bf8942edca1bcec735145e144a682ca9cd3",
      "parents": [
        "f0de70f8bb56952f6e016a65a8a8d006918f5bf6",
        "0384e2959127a56d0640505d004d8dd92f9c29f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/wimax/i2400m/usb-notif.c\n"
    },
    {
      "commit": "55420c24a0d4d1fce70ca713f84aa00b6b74a70e",
      "tree": "9e7e931122cb77e7ae1249b6dde81d83f60a894d",
      "parents": [
        "b61d59fffd3e5b6037c92b4c840605831de8a251"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 15:29:24 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:36 2009 -0400"
      },
      "message": "SUNRPC: Ensure we close the socket on EPIPE errors too...\n\nAs long as one task is holding the socket lock, then calls to\nxprt_force_disconnect(xprt) will not succeed in shutting down the socket.\nIn particular, this would mean that a server initiated shutdown will not\nsucceed until the lock is relinquished.\nIn order to avoid the deadlock, we should ensure that xs_tcp_send_request()\ncloses the socket on EPIPE errors too.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b61d59fffd3e5b6037c92b4c840605831de8a251",
      "tree": "329bfecb1c8c66364e7b2797c51eab779ee2540d",
      "parents": [
        "25fe6142a57c720452c5e9ddbc1f32309c1e5c19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:04 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:35 2009 -0400"
      },
      "message": "SUNRPC: xs_tcp_connect_worker{4,6}: merge common code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "25fe6142a57c720452c5e9ddbc1f32309c1e5c19",
      "tree": "54ace9992e13ff9d3644bbb98ec8b74baf22b241",
      "parents": [
        "7d1e8255cf959fba7ee2317550dfde39f0b936ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:34 2009 -0400"
      },
      "message": "SUNRPC: Add a sysctl to control the duration of the socket linger timeout\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d1e8255cf959fba7ee2317550dfde39f0b936ae",
      "tree": "0a046b83e5ac29501849c34408059480d4c210be",
      "parents": [
        "5e3771ce2d6a69e10fcc870cdf226d121d868491"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:34 2009 -0400"
      },
      "message": "SUNRPC: Add the equivalent of the linger and linger2 timeouts to RPC sockets\n\nThis fixes a regression against FreeBSD servers as reported by Tomas\nKasparek. Apparently when using RPC over a TCP socket, the FreeBSD servers\ndon\u0027t ever react to the client closing the socket, and so commit\ne06799f958bf7f9f8fae15f0c6f519953fb0257c (SUNRPC: Use shutdown() instead of\nclose() when disconnecting a TCP socket) causes the setup to hang forever\nwhenever the client attempts to close and then reconnect.\n\nWe break the deadlock by adding a \u0027linger2\u0027 style timeout to the socket,\nafter which, the client will abort the connection using a TCP \u0027RST\u0027.\n\nThe default timeout is set to 15 seconds. A subsequent patch will put it\nunder user control by means of a systctl.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5e3771ce2d6a69e10fcc870cdf226d121d868491",
      "tree": "3c20ee45ae8b87621ae95cedb6b385bf0e6d7a2f",
      "parents": [
        "8a2cec295f4499cc9d4452e9b02d4ed071bb42d3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "message": "SUNRPC: Ensure that xs_nospace return values are propagated\n\nIf xs_nospace() finds that the socket has disconnected, it attempts to\nreturn ENOTCONN, however that value is then squashed by the callers.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a2cec295f4499cc9d4452e9b02d4ed071bb42d3",
      "tree": "148f1658cb923a2faafdb1e993dd63832c860eb1",
      "parents": [
        "2a4919919a97911b0aa4b9f5ac1eab90ba87652b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "message": "SUNRPC: Delay, then retry on connection errors.\n\nEnforce the comment in xs_tcp_connect_worker4/xs_tcp_connect_worker6 that\nwe should delay, then retry on certain connection errors.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2a4919919a97911b0aa4b9f5ac1eab90ba87652b",
      "tree": "c12eb42c34f0d0b79130ae93ebd56159e8366ee8",
      "parents": [
        "482f32e65d31cbf88d08306fa5d397cc945c3c26"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "message": "SUNRPC: Return EAGAIN instead of ENOTCONN when waking up xprt-\u003epending\n\nWhile we should definitely return socket errors to the task that is\ncurrently trying to send data, there is no need to propagate the same error\nto all the other tasks on xprt-\u003epending. Doing so actually slows down\nrecovery, since it causes more than one tasks to attempt socket recovery.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "482f32e65d31cbf88d08306fa5d397cc945c3c26",
      "tree": "e0a8adf7925ecfce413506b68d67a94f6c1b1131",
      "parents": [
        "c8485e4d634f6df155040293928707f127f0d06d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "message": "SUNRPC: Handle socket errors correctly\n\nEnsure that we pick up and handle socket errors as they occur.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c8485e4d634f6df155040293928707f127f0d06d",
      "tree": "72ec8a7ea829e4f7df4648e646353c55a037e50e",
      "parents": [
        "40d2549db5f515e415894def98b49db7d4c56714"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:59 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:59 2009 -0400"
      },
      "message": "SUNRPC: Handle ECONNREFUSED correctly in xprt_transmit()\n\nIf we get an ECONNREFUSED error, we currently go to sleep on the\n\u0027xprt-\u003esending\u0027 wait queue. The problem is that no timeout is set there,\nand there is nothing else that will wake the task up later.\n\nWe should deal with ECONNREFUSED in call_status, given that is where we\nalso deal with -EHOSTDOWN, and friends.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40d2549db5f515e415894def98b49db7d4c56714",
      "tree": "6c301c61cd3a9215bf39deee53623e1fd97a895f",
      "parents": [
        "670f94573104b4a25525d3fcdcd6496c678df172"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "message": "SUNRPC: Don\u0027t disconnect if a connection is still in progress.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "670f94573104b4a25525d3fcdcd6496c678df172",
      "tree": "3beaadb8ee2841972c0e719c67c64e1cc27bb7ea",
      "parents": [
        "15f081ca8ddfe150fb639c591b18944a539da0fc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "message": "SUNRPC: Ensure we set XPRT_CLOSING only after we\u0027ve sent a tcp FIN...\n\n...so that we can distinguish between when we need to shutdown and when we\ndon\u0027t. Also remove the call to xs_tcp_shutdown() from xs_tcp_connect(),\nsince xprt_connect() makes the same test.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe315e76fc3a3f9f7e1581dc22fec7e7719f0896",
      "tree": "15ba17ab92691d55f3e3168df8fef2fb366339c0",
      "parents": [
        "01d37c428ae080563c0a3bb8bdfa88c65a6891d3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 11 14:10:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:21 2009 -0400"
      },
      "message": "SUNRPC: Avoid spurious wake-up during UDP connect processing\n\nTo clear out old state, the UDP connect workers unconditionally invoke\nxs_close() before proceeding with a new connect.  Nowadays this causes\na spurious wake-up of the task waiting for the connect to complete.\n\nThis is a little racey, but usually harmless.  The waiting task\nimmediately retries the connect via a call_bind/call_connect sequence,\nwhich usually finds the transport already in the connected state\nbecause the connect worker has finished in the background.\n\nTo avoid a spurious wake-up, factor the xs_close() logic that resets\nthe underlying socket into a helper, and have the UDP connect workers\ncall that helper instead of xs_close().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01d37c428ae080563c0a3bb8bdfa88c65a6891d3",
      "tree": "bfc1c9a6336d4b7058c742d4a3178f8f588f5b66",
      "parents": [
        "fba91afbec2c004e2c8733ae9e0ca6998e962c64"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:09:39 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:09:39 2009 -0400"
      },
      "message": "SUNRPC: xprt_connect() don\u0027t abort the task if the transport isn\u0027t bound\n\nIf the transport isn\u0027t bound, then we should just return ENOTCONN, letting\ncall_connect_status() and/or call_status() deal with retrying. Currently,\nwe appear to abort all pending tasks with an EIO error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fba91afbec2c004e2c8733ae9e0ca6998e962c64",
      "tree": "025d7c07b8d41d4e5752fb9da7396a0b596856da",
      "parents": [
        "d7371c41b0cda782256b1df759df4e8d4724584c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:06:41 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:06:41 2009 -0400"
      },
      "message": "SUNRPC: Fix an Oops due to socket not set up yet...\n\nWe can Oops in both xs_udp_send_request() and xs_tcp_send_request() if the\ncall to xs_sendpages() returns an error due to the socket not yet being\nset up.\nDeal with that situation by returning a new error: ENOTSOCK, so that we\nknow to avoid dereferencing transport-\u003esock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "1f0fa15432e49547c3fa915644c7e0c0975809e7"
}
