)]}'
{
  "log": [
    {
      "commit": "b1721d2bb9d015d7e49079414671569a2fc0ac9b",
      "tree": "f8c1cc3d7d3072c5f1d1cf78e430dddca18f1450",
      "parents": [
        "79f55f11a090d9f369448dcb58242c7924873920"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun Dec 14 23:19:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 14 23:19:48 2008 -0800"
      },
      "message": "rpc/rdma: goto instead of copypaste\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5eaa65b240c5eb7bf2235eb9dd177c83e6e3832c",
      "tree": "1a6b217cfc5b241b298a8765f68fcb5f711f9bc3",
      "parents": [
        "2107fb8b5bf018be691afdd4c6ffaecf0c3307be"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Dec 10 15:18:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 15:18:31 2008 -0800"
      },
      "message": "net: Make static\n\nSparse asked whether these could be static.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff0db0490a2eb6db4f03870987c5c8e3dd81e747",
      "tree": "8ca1dbcb1ed367d3c6ee482a1dfa049ca351e94e",
      "parents": [
        "e14bec2e2b59a6180f04544a867b7e52cd414455"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 16:58:42 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 16:58:42 2008 -0800"
      },
      "message": "sunrpc: fix warning in net/sunrpc/xprtrdma/verbs.c\n\nfix this warning:\n\n  net/sunrpc/xprtrdma/verbs.c: In function ‘rpcrdma_conn_upcall’:\n  net/sunrpc/xprtrdma/verbs.c:279: warning: unused variable ‘addr’\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed72b9c6e0ec4e66dd16b7ca212845e1eb985d65",
      "tree": "731d4865ab1b2c3acbc8077b6a03f33b87017a53",
      "parents": [
        "be5a3c62c805878d67036b4683f09118cab4c9fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 16:49:37 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 16:49:37 2008 -0800"
      },
      "message": "sunrpc: fix warning in net/sunrpc/xprtrdma/svc_rdma_transport.c\n\nthis warning:\n\n  net/sunrpc/xprtrdma/svc_rdma_transport.c: In function ‘svc_rdma_accept’:\n  net/sunrpc/xprtrdma/svc_rdma_transport.c:830: warning: ‘dma_mr_acc’ may be used uninitialized in this function\n\ntriggers because GCC does not recognize the (correct) flow connection\nbetween need_dma_mr and dma_mr_acc.\n\nAnnotate it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21454aaad30651ba0dcc16fe5271bc12ee21f132",
      "tree": "eb525494d6f80a0e855840bc588ae1f422348b04",
      "parents": [
        "14d5e834f6b36667c7da56374645f99b6cf30814"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 31 00:54:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:54:56 2008 -0700"
      },
      "message": "net: replace NIPQUAD() in net/*/\n\nUsing NIPQUAD() with NIPQUAD_FMT, %d.%d.%d.%d or %u.%u.%u.%u\ncan be replaced with %pI4\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6925bac120097b823fc990c143b9789c21cc60b5",
      "tree": "0f92e1b22122fba623aeff4c271c16df673244eb",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab",
        "011935a0a710c20bb7ae63523b78856848db1926"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 15 15:54:56 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 15 15:54:56 2008 -0400"
      },
      "message": "Merge branch \u0027next\u0027\n"
    },
    {
      "commit": "8acd3a60bcca17c6d89c73cee3ad6057eb83ba1e",
      "tree": "d610c8d39246c33c499ee9d92d302d3ca9e89ae3",
      "parents": [
        "c269bc00fcb876ae3b85f178f1e34601185c8ccc",
        "107e0008dfb8bd6366bc8827f5bbbc0c1f795d2d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux: (59 commits)\n  svcrdma: Fix IRD/ORD polarity\n  svcrdma: Update svc_rdma_send_error to use DMA LKEY\n  svcrdma: Modify the RPC reply path to use FRMR when available\n  svcrdma: Modify the RPC recv path to use FRMR when available\n  svcrdma: Add support to svc_rdma_send to handle chained WR\n  svcrdma: Modify post recv path to use local dma key\n  svcrdma: Add a service to register a Fast Reg MR with the device\n  svcrdma: Query device for Fast Reg support during connection setup\n  svcrdma: Add FRMR get/put services\n  NLM: Remove unused argument from svc_addsock() function\n  NLM: Remove \"proto\" argument from lockd_up()\n  NLM: Always start both UDP and TCP listeners\n  lockd: Remove unused fields in the nlm_reboot structure\n  lockd: Add helper to sanity check incoming NOTIFY requests\n  lockd: change nlmclnt_grant() to take a \"struct sockaddr *\"\n  lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses\n  lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET\n  lockd: Support non-AF_INET addresses in nlm_lookup_host()\n  NLM: Convert nlm_lookup_host() to use a single argument\n  svcrdma: Add Fast Reg MR Data Types\n  ...\n"
    },
    {
      "commit": "c055551e97e1ca00781bc41523f829e05a8afed7",
      "tree": "6e4743b84b176788174b66c756b98562ce956a1b",
      "parents": [
        "08ca0dce1eafa419059ac4cad9ed522af7052526"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Fri Oct 10 11:32:45 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:15:06 2008 -0400"
      },
      "message": "RPC/RDMA: ensure connection attempt is complete before signalling.\n\nThe RPC/RDMA connection logic could return early from reconnection\nattempts, leading to additional spurious retries.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "08ca0dce1eafa419059ac4cad9ed522af7052526",
      "tree": "76724d885bcfc89db261f119a6f38a8cbb1a6240",
      "parents": [
        "b3cd8d45a764e6edb06e7bd386faf99a879569b8"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Fri Oct 10 11:32:34 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:15:02 2008 -0400"
      },
      "message": "RPC/RDMA: correct the reconnect timer backoff\n\nThe RPC/RDMA code had a constant 5-second reconnect backoff, and\nalways performed it, even when re-establishing a connection to a\nserver after the RPC layer closed it due to being idle. Make it\nan geometric backoff (up to 30 seconds), and don\u0027t delay idle\nreconnect.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b3cd8d45a764e6edb06e7bd386faf99a879569b8",
      "tree": "e77218bd80d3b9c6ba64b2ff304375458486e514",
      "parents": [
        "5f37d561e0f0cd98017c389cbc22080290f11c3c"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:02:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:13:59 2008 -0400"
      },
      "message": "RPC/RDMA: optionally emit useful transport info upon connect/disconnect.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5f37d561e0f0cd98017c389cbc22080290f11c3c",
      "tree": "747b34df0fa4d36c7597571a9120513dd8aa8609",
      "parents": [
        "5675add36e76b9487e7f9e689f854cb8d6afd9b4"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:01:52 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:13:42 2008 -0400"
      },
      "message": "RPC/RDMA: reformat a debug printk to keep lines together.\n\nThe send marshaling code split a particular dprintk across two\nlines, which makes it hard to extract from logfiles.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5675add36e76b9487e7f9e689f854cb8d6afd9b4",
      "tree": "414b5e26b099c6aa42ee989925c0dfb8b717366e",
      "parents": [
        "1a954051b0cf79bd67e5f9db40333e3a9b1d05d2"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:01:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:13:31 2008 -0400"
      },
      "message": "RPC/RDMA: harden connection logic against missing/late rdma_cm upcalls.\n\nAdd defensive timeouts to wait_for_completion() calls in RDMA\naddress resolution, and make them interruptible. Fix the timeout\nunits to milliseconds (formerly jiffies) and move to private header.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1a954051b0cf79bd67e5f9db40333e3a9b1d05d2",
      "tree": "48a0e5f876776865552cfce522ebee604da30fbb",
      "parents": [
        "926449ba66ce2a45c619bbe755b00d6bdbf0d83e"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:01:31 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:13:02 2008 -0400"
      },
      "message": "RPC/RDMA: fix connect/reconnect resource leak.\n\nThe RPC/RDMA code can leak RDMA connection manager endpoints in\ncertain error cases on connect. Don\u0027t signal unwanted events,\nand be certain to destroy any allocated qp.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "926449ba66ce2a45c619bbe755b00d6bdbf0d83e",
      "tree": "94bebe684f2d9c1e2954843e571cb2657e75ac05",
      "parents": [
        "9191ca3b381b15b9a88785a8ae2fa4db8e553b0c"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:01:21 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:12:44 2008 -0400"
      },
      "message": "RPC/RDMA: return a consistent error, when connect fails.\n\nThe xprt_connect call path does not expect such errors as ECONNREFUSED\nto be returned from failed transport connection attempts, otherwise it\ntranslates them to EIO and signals fatal errors. For example, mount.nfs\nprints simply \"internal error\". Translate all such errors to ENOTCONN\nfrom RPC/RDMA to match sockets behavior.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9191ca3b381b15b9a88785a8ae2fa4db8e553b0c",
      "tree": "7357b4009fefff106adab972f0572b3d4e105fa0",
      "parents": [
        "fee08caf943e8ed3446ce42fa085b5e7e5f08d92"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:01:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:12:33 2008 -0400"
      },
      "message": "RPC/RDMA: adhere to protocol for unpadded client trailing write chunks.\n\nThe RPC/RDMA protocol allows clients and servers to avoid RDMA\noperations for data which is purely the result of XDR padding.\nOn the client, automatically insert the necessary padding for\nsuch server replies, and optionally don\u0027t marshal such chunks.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fee08caf943e8ed3446ce42fa085b5e7e5f08d92",
      "tree": "21419677bd5210c7a9068b698c23e52cd385f530",
      "parents": [
        "ad0e9e01da4ece70ff524b49c77c5e850d5dd53e"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:01:00 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:11:40 2008 -0400"
      },
      "message": "RPC/RDMA: avoid an oops due to disconnect racing with async upcalls.\n\nRDMA disconnects yield an upcall from the RDMA connection manager,\nwhich can race with rpc transport close, e.g. on ^C of a mount.\nEnsure any rdma cm_id and qp are fully destroyed before continuing.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ad0e9e01da4ece70ff524b49c77c5e850d5dd53e",
      "tree": "bf8f2ee9e7c900b495bc7fd589045c3b407bc791",
      "parents": [
        "575448bd36208f99fe0dd554a43518d798966740"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:00:50 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:10:40 2008 -0400"
      },
      "message": "RPC/RDMA: maintain the RPC task bytes-sent statistic.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "575448bd36208f99fe0dd554a43518d798966740",
      "tree": "191d98d11586952ec961c56b58335cc76346b4b6",
      "parents": [
        "b334eaabf4f92226d2df13c613888a507f03da99"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:00:40 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:10:36 2008 -0400"
      },
      "message": "RPC/RDMA: suppress retransmit on RPC/RDMA clients.\n\nAn RPC/RDMA client cannot retransmit on an unbroken connection,\ndoing so violates its flow control with the server.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b334eaabf4f92226d2df13c613888a507f03da99",
      "tree": "da3ce699ec10898dd41483e52c6e99805be6f363",
      "parents": [
        "3197d309f5fb042499b2c4c8f2fcb67372df5201"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Thu Oct 09 15:00:30 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:09:56 2008 -0400"
      },
      "message": "RPC/RDMA: fix connection IRD/ORD setting\n\nThis logic sets the connection parameter that configures the local device\nand informs the remote peer how many concurrent incoming RDMA_READ\nrequests are supported. The original logic didn\u0027t really do what was\nintended for two reasons:\n\n- The max number supported by the device is typically smaller than\nany one factor in the calculation used, and\n\n- The field in the connection parameter structure where the value is\nstored is a u8 and always overflows for the default settings.\n\nSo what really happens is the value requested for responder resources\nis the left over 8 bits from the \"desired value\". If the desired value\nhappened to be a multiple of 256, the result was zero and it wouldn\u0027t\nconnect at all.\n\nGiven the above and the fact that max_requests is almost always larger\nthan the max responder resources supported by the adapter, this patch\nsimplifies this logic and simply requests the max supported by the device,\nsubject to a reasonable limit.\n\nThis bug was found by Jim Schutt at Sandia.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3197d309f5fb042499b2c4c8f2fcb67372df5201",
      "tree": "a4cca3420bc99e44af00806abe4a265d539d9c24",
      "parents": [
        "bd7ed1d13304d914648dacec4dbb9145aaae614e"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:00:20 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:09:34 2008 -0400"
      },
      "message": "RPC/RDMA: support FRMR client memory registration.\n\nConfigure, detect and use \"fastreg\" support from IB/iWARP verbs\nlayer to perform RPC/RDMA memory registration.\n\nMake FRMR the default memreg mode (will fall back if not supported\nby the selected RDMA adapter).\n\nThis allows full and optimal operation over the cxgb3 adapter, and others.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nAcked-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd7ed1d13304d914648dacec4dbb9145aaae614e",
      "tree": "a0eee0c8304ab4bab7baca4675ebf8fffef1e288",
      "parents": [
        "fe9053b30bb48b99f7b45541249f5cfe96bdf7f7"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 15:00:09 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:09:26 2008 -0400"
      },
      "message": "RPC/RDMA: check selected memory registration mode at runtime.\n\nAt transport creation, check for, and use, any local dma lkey.\nThen, check that the selected memory registration mode is in fact\nsupported by the RDMA adapter selected for the mount. Fall back\nto best alternative if not.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nAcked-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe9053b30bb48b99f7b45541249f5cfe96bdf7f7",
      "tree": "41904e855b60678ae8788e68e8a5944d686b31e3",
      "parents": [
        "8d4ba0347ccfea4f12e56e2484954b891411b74d"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 14:59:59 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:09:24 2008 -0400"
      },
      "message": "RPC/RDMA: add data types and new FRMR memory registration enum.\n\nInternal RPC/RDMA structure updates in preparation for FRMR support.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nAcked-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d4ba0347ccfea4f12e56e2484954b891411b74d",
      "tree": "839874b3462d28a2876abf0868aa9a6d2c4780b2",
      "parents": [
        "5e2e7721f04c11e6dc4a74b33f05a0e1c0381e2e"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "talpey@netapp.com",
        "time": "Thu Oct 09 14:59:49 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 15:09:16 2008 -0400"
      },
      "message": "RPC/RDMA: refactor the inline memory registration code.\n\nRefactor the memory registration and deregistration routines.\nThis saves stack space, makes the code more readable and prepares\nto add the new FRMR registration methods.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "67080c82361b7510b602c87b83399421aa2d2895",
      "tree": "4003f47552ac28b54a75826e7230c711e7b64f45",
      "parents": [
        "04911b539c9817aa88a6da8f563e65e3e0bc974b"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Oct 03 12:41:14 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:46:13 2008 -0500"
      },
      "message": "svcrdma: Fix IRD/ORD polarity\n\nThe inititator/responder resources in the event have been swapped. They\nno represent what the local peer would set their values to in order to\nmatch the peer. Note that iWARP does not exchange these on the wire and\nthe provider is simply putting in the local device max.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "04911b539c9817aa88a6da8f563e65e3e0bc974b",
      "tree": "9379440a4ca2a972d02d35feb3ac6ab0419e96c4",
      "parents": [
        "afd566ea080572499cc01d42d2f578bf4b54f20f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Aug 11 15:14:53 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:46:08 2008 -0500"
      },
      "message": "svcrdma: Update svc_rdma_send_error to use DMA LKEY\n\nUpdate the svc_rdma_send_error code to use the DMA LKEY which is valid\nregardless of the memory registration strategy in use.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "afd566ea080572499cc01d42d2f578bf4b54f20f",
      "tree": "cbd0c55f27cfd0a432bf669d6db4cbe0e595a2bf",
      "parents": [
        "146b6df6a537939570c5772ebd7db826fdbd5d82"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Oct 03 15:45:03 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:46:05 2008 -0500"
      },
      "message": "svcrdma: Modify the RPC reply path to use FRMR when available\n\nUse FRMR to map local RPC reply data. This allows RDMA_WRITE to send reply\ndata using a single WR. The FRMR is invalidated by linking the LOCAL_INV WR\nto the RDMA_SEND message used to complete the reply.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "146b6df6a537939570c5772ebd7db826fdbd5d82",
      "tree": "1acf55f3244719e543fb5f6eed6de11c5dd3110e",
      "parents": [
        "5b180a9a64ca2217a658bd515ef910eafefc5e5a"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Aug 12 15:12:10 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:46:01 2008 -0500"
      },
      "message": "svcrdma: Modify the RPC recv path to use FRMR when available\n\nRPCRDMA requests that specify a read-list are fetched with RDMA_READ. Using\nan FRMR to map the data sink improves NFSRDMA security on transports that\nplace the RDMA_READ data sink LKEY on the wire because the valid lifetime\nof the MR is only the duration of the RDMA_READ. The LKEY is invalidated\nwhen the last RDMA_READ WR completes.\n\nMapping the data sink also allows for very large amounts to data to be\nfetched with a single WR, so if the client is also using FRMR, the entire\nRPC read-list can be fetched with a single WR.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "5b180a9a64ca2217a658bd515ef910eafefc5e5a",
      "tree": "61fe08b958b3707be0a516677f72216c06217edd",
      "parents": [
        "a5abf4e81545d9c7280c49cae853cc45fd769ddf"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Aug 11 14:10:19 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:45:56 2008 -0500"
      },
      "message": "svcrdma: Add support to svc_rdma_send to handle chained WR\n\nWR can be submitted as linked lists of WR. Update the svc_rdma_send\nroutine to handle WR chains. This will be used to submit a WR that\nuses an FRMR with another WR that invalidates the FRMR.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "a5abf4e81545d9c7280c49cae853cc45fd769ddf",
      "tree": "fef48a88715bac9bfdca3e00aa1ed6afb1177004",
      "parents": [
        "e1183210625cc8e02ce13eec78fb7a246567fc59"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Sep 30 14:05:41 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:45:52 2008 -0500"
      },
      "message": "svcrdma: Modify post recv path to use local dma key\n\nUpdate the svc_rdma_post_recv routine to use the adapter\u0027s global LKEY\ninstead of sc_phys_mr which is only valid when using a DMA MR.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "e1183210625cc8e02ce13eec78fb7a246567fc59",
      "tree": "c01cb7326fb64b899cc375bbadcea0e4579c6043",
      "parents": [
        "3a5c63803d0552a3ad93b85c262f12cd86471443"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Oct 03 15:22:18 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:45:49 2008 -0500"
      },
      "message": "svcrdma: Add a service to register a Fast Reg MR with the device\n\nFast Reg MR introduces a new WR type. Add a service to register the\nregion with the adapter and update the completion handling to support\ncompletions with a NULL WR context.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "3a5c63803d0552a3ad93b85c262f12cd86471443",
      "tree": "aec8f9e66b2ac4258a7e379be5ce9abd5670da49",
      "parents": [
        "64be8608c163bd480cf5ec4b34366f11e0f3c87f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Sep 30 13:46:13 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:45:45 2008 -0500"
      },
      "message": "svcrdma: Query device for Fast Reg support during connection setup\n\nQuery the device capabilities in the svc_rdma_accept function to determine\nwhat advanced memory management capabilities are supported by the device.\nBased on the query, select the most secure model available given the\nrequirements of the transport and capabilities of the adapter.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "64be8608c163bd480cf5ec4b34366f11e0f3c87f",
      "tree": "e0a2499259c799d1ac97935107a25c4cefd7cb0c",
      "parents": [
        "0d3ebb9ae9f9c887518fd4c81a68084111d154d7"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:45:18 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Oct 06 14:45:18 2008 -0500"
      },
      "message": "svcrdma: Add FRMR get/put services\n\nAdd services for the allocating, freeing, and unmapping Fast Reg MR. These\nservices will be used by the transport connection setup, send and receive\nroutines.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "6067804047b64dde89f4f133fc7eba48ee44107d",
      "tree": "abe87787c3ad2aee82e576c7d4128e29bb296ac0",
      "parents": [
        "a574420ff46cff0245e6b0fce2e961aa2717743d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Sep 20 22:20:49 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 20 22:20:49 2008 -0700"
      },
      "message": "net: Use hton[sl]() instead of __constant_hton[sl]() where applicable\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24b8b44780a2c53ecb738f4a1c08d114f5eda27c",
      "tree": "f772e59438783c6230158ea65bd5aeb3f84f4202",
      "parents": [
        "30a2f3c60a84092c8084dfe788b710f8d0768cd4"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Aug 13 11:05:41 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Aug 13 16:57:31 2008 -0400"
      },
      "message": "svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet\n\nRDMA_READ completions are kept on a separate queue from the general\nI/O request queue. Since a separate lock is used to protect the RDMA_READ\ncompletion queue, a race exists between the dto_tasklet and the\nsvc_rdma_recvfrom thread where the dto_tasklet sets the XPT_DATA\nbit and adds I/O to the read-completion queue. Concurrently, the\nrecvfrom thread checks the generic queue, finds it empty and resets\nthe XPT_DATA bit. A subsequent svc_xprt_enqueue will fail to enqueue\nthe transport for I/O and cause the transport to \"stall\".\n\nThe fix is to protect both lists with the same lock and set the XPT_DATA\nbit with this lock held.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06",
      "tree": "64090a84f4c4466f9f30ff46c993e0cede379052",
      "parents": [
        "c485b465a031b6f9b9a51300e0ee1f86efc6db87"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "dma-mapping: add the device argument to dma_mapping_error()\n\nAdd per-device dma_mapping_ops support for CONFIG_X86_64 as POWER\narchitecture does:\n\nThis enables us to cleanly fix the Calgary IOMMU issue that some devices\nare not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).\n\nI think that per-device dma_mapping_ops support would be also helpful for\nKVM people to support PCI passthrough but Andi thinks that this makes it\ndifficult to support the PCI passthrough (see the above thread).  So I\nCC\u0027ed this to KVM camp.  Comments are appreciated.\n\nA pointer to dma_mapping_ops to struct dev_archdata is added.  If the\npointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it\u0027s\nNULL, the system-wide dma_ops pointer is used as before.\n\nIf it\u0027s useful for KVM people, I plan to implement a mechanism to register\na hook called when a new pci (or dma capable) device is created (it works\nwith hot plugging).  It enables IOMMUs to set up an appropriate\ndma_mapping_ops per device.\n\nThe major obstacle is that dma_mapping_error doesn\u0027t take a pointer to the\ndevice unlike other DMA operations.  So x86 can\u0027t have dma_mapping_ops per\ndevice.  Note all the POWER IOMMUs use the same dma_mapping_error function\nso this is not a problem for POWER but x86 IOMMUs use different\ndma_mapping_error functions.\n\nThe first patch adds the device argument to dma_mapping_error.  The patch\nis trivial but large since it touches lots of drivers and dma-mapping.h in\nall the architecture.\n\nThis patch:\n\ndma_mapping_error() doesn\u0027t take a pointer to the device unlike other DMA\noperations.  So we can\u0027t have dma_mapping_ops per device.\n\nNote that POWER already has dma_mapping_ops per device but all the POWER\nIOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device\nargument.\n\n[akpm@linux-foundation.org: fix sge]\n[akpm@linux-foundation.org: fix svc_rdma]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix bnx2x]\n[akpm@linux-foundation.org: fix s2io]\n[akpm@linux-foundation.org: fix pasemi_mac]\n[akpm@linux-foundation.org: fix sdhci]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc]\n[akpm@linux-foundation.org: fix ibmvscsi]\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8948896c9e098c6fd31a6a698a598a7cbd7fa40e",
      "tree": "465a4d93c8becb0b2e4750cc1286391916f887b5",
      "parents": [
        "bf5927d84e70d522f234ca247b27d27c63878b93"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 15:14:02 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:02:02 2008 -0500"
      },
      "message": "svcrdma: Change WR context get/put to use the kmem cache\n\nChange the WR context pool to be shared across mount points. This\nreduces the RDMA transport memory footprint significantly since\nidle mounts don\u0027t consume WR context memory.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "bf5927d84e70d522f234ca247b27d27c63878b93",
      "tree": "5fde73a6d64da9ee3682185ae5c09c3cfbe817d1",
      "parents": [
        "902a94e0889be1f9fcefc0e1b602b06136e01812"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 14:05:54 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:02:01 2008 -0500"
      },
      "message": "svcrdma: Create a kmem cache for the WR contexts\n\nCreate a kmem cache to hold WR contexts. Next we will convert\nthe WR context get and put services to use this kmem cache.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "902a94e0889be1f9fcefc0e1b602b06136e01812",
      "tree": "68212c3fbc1103e2174e3a2b79c0ade1bba6f251",
      "parents": [
        "36ef25e464dbc5820c22a9b2f619b787eda594df"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 13:57:05 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:02:00 2008 -0500"
      },
      "message": "svcrdma: Add flush_scheduled_work to module exit function\n\nMake certain all transports pending free are flushed from the wq\nbefore unloading the module.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "36ef25e464dbc5820c22a9b2f619b787eda594df",
      "tree": "4990dfaaf2f4f082ebb016a8a75d3975a6ccf7b8",
      "parents": [
        "779a48577ba88b6a7e9748a04b0b739f36c5e6f6"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 19:00:24 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:59 2008 -0500"
      },
      "message": "svcrdma: Limit ORD based on client\u0027s advertised IRD\n\nWhen adapters have differing IRD limits, the RDMA transport will fail to\nconnect properly. The RDMA transport should use the client\u0027s advertised\ninbound read limit when computing its outbound read limit. For iWARP\ntransports, there is currently no standard for exchanging IRD/ORD\nduring connection establishment so the \u0027responder_resources\u0027 field in the\nconnect event is the local device\u0027s limit. The RDMA transport can be\nconfigured to use a smaller ORD by writing the desired number to the\n/proc/sys/sunrpc/svc_rdma/max_outbound_read_requests file.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "94dba4918d4570bfa98776e54a5fa527c848dc78",
      "tree": "c861aac6e5eb5eec55be012c71655ba7178445ae",
      "parents": [
        "87295b6c5c7fd7bbc0ce3e7f42d2adbbac7352b9"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 13:20:24 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:57 2008 -0500"
      },
      "message": "svcrdma: Remove unneeded spin locks from __svc_rdma_free\n\nAt the time __svc_rdma_free is called, we are guaranteed that all references\nto this transport are gone. There is, therefore, no need to protect the\nresource lists with a spin lock.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "87295b6c5c7fd7bbc0ce3e7f42d2adbbac7352b9",
      "tree": "11a273d3fd2c61bbbf102b80c0b45a0f0021d499",
      "parents": [
        "e6ab9143719ff76f0b95f0866c4d0f6c743ad2e0"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 13:17:44 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:56 2008 -0500"
      },
      "message": "svcrdma: Add dma map count and WARN_ON\n\nAdd a dma map count in order to verify that all DMA mapping resources\nhave been freed when the transport is closed.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "e6ab9143719ff76f0b95f0866c4d0f6c743ad2e0",
      "tree": "42e95b916e9fbe814d1d61557af478f557f9d750",
      "parents": [
        "f820c57ebf5493d4602cc00577c8b0fadd27a7b8"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 12:08:48 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:55 2008 -0500"
      },
      "message": "svcrdma: Move the DMA unmap logic to the CQ handler\n\nSeparate DMA unmap from context destruction and perform DMA unmapping\nin the SQ/RQ CQ reap functions. This is necessary to support software\nbased RDMA implementations that actually copy the data in their\nib_dma_unmap callback functions and architectures that don\u0027t have\ncache coherent I/O busses.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "f820c57ebf5493d4602cc00577c8b0fadd27a7b8",
      "tree": "7a39a4e18e98d95d3a2a9d642ae93509c5c77177",
      "parents": [
        "34d16e42a6ab74a4a4389c061dfa3c6609e08fa0"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue May 27 17:03:14 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:55 2008 -0500"
      },
      "message": "svcrdma: Use reply and chunk map for RDMA_READ processing\n\nModify the RDMA_READ processing to use the reply and chunk list mapping data\ntypes. Also add a special purpose \u0027hdr_count\u0027 field in in the context to hold\nthe header page count instead of overloading the SGE length field and\ncorrupting the DMA map length.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "34d16e42a6ab74a4a4389c061dfa3c6609e08fa0",
      "tree": "85b1939f8096ea89bf7c2ccb569ae3b5e0667905",
      "parents": [
        "ab96dddbedf4bb8a7a0fe44012efc1d99598c36f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 14:56:13 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:54 2008 -0500"
      },
      "message": "svcrdma: Use RPC reply map for RDMA_WRITE processing\n\nUse the new svc_rdma_req_map data type for mapping the client side memory\nto the server side memory. Move the DMA mapping to the context pointed to\nby each WR individually so that it is unmapped after the WR completes.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "ab96dddbedf4bb8a7a0fe44012efc1d99598c36f",
      "tree": "bb3fcfe50264d9a0eb63b768aab8154d70185975",
      "parents": [
        "e1441b9a41c33aa9236008a7cfe49a8e723fb397"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 28 13:54:04 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:53 2008 -0500"
      },
      "message": "svcrdma: Add a type for keeping NFS RPC mapping\n\nCreate a new data structure to hold the remote client address space\nto local server address space mapping.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "a6f911c04e20b98feb4b33d3aba2976851977d6a",
      "tree": "54a34d7007ca8d1d39f55396e2d084f6f9310e91",
      "parents": [
        "008fdbc57164b0ac237ad6ee2766944f02ac9c28"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue May 13 09:16:05 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:34:02 2008 -0500"
      },
      "message": "svcrdma: Verify read-list fits within RPCSVC_MAXPAGES\n\nA RDMA read-list cannot contain more elements than RPCSVC_MAXPAGES or\nit will overflow the DTO context. Verify this when processing the\nprotocol header.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "008fdbc57164b0ac237ad6ee2766944f02ac9c28",
      "tree": "e1637f39b6454a6ae94a00e90bd047d47bdfdf7e",
      "parents": [
        "af261af4db14230fb35bcdc0ba9ef78ed6cf7bc1"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 07 15:47:42 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:34:01 2008 -0500"
      },
      "message": "svcrdma: Change svc_rdma_send_error return type to void\n\nThe svc_rdma_send_error function is called when an RPCRDMA protocol\nerror is detected. This function attempts to post an error reply message.\nSince an error posting to a transport in error is ignored, change\nthe return type to void.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "af261af4db14230fb35bcdc0ba9ef78ed6cf7bc1",
      "tree": "1d9de4ac4a71f6fd79eb41e9244f34daf863790a",
      "parents": [
        "69500c43b45f7155b72dcadad31cd55cda789c93"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 07 13:52:42 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:34:00 2008 -0500"
      },
      "message": "svcrdma: Copy transport address and arm CQ before calling rdma_accept\n\nThis race was found by inspection. Messages can be received from the peer\nimmediately following the rdma_accept call, however, the CQ have not yet\nbeen armed and the transport address has not yet been set.\n\nSet the transport address in the connect request handler and arm the CQ\nprior to calling rdma_accept.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "69500c43b45f7155b72dcadad31cd55cda789c93",
      "tree": "13bc2f4a6950841adc66a44635f945f84f8faeba",
      "parents": [
        "97a3df382e01c49555ea844bd7c4e5a08f245b9d"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed May 07 13:49:58 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:59 2008 -0500"
      },
      "message": "svcrdma: Set rqstp transport address in rdma_read_complete function\n\nThe rdma_read_complete function needs to copy the rqstp transport address\nfrom the transport. Failure to do so can result in using the wrong\nauthentication method for the RPC or bug checking if the rqstp address\nis not valid.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "97a3df382e01c49555ea844bd7c4e5a08f245b9d",
      "tree": "d02f8919c9b92fd61b251afd5e591971a12c6442",
      "parents": [
        "356d0a1519867422c3f17f79e2183f8c2d44f8ee"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Thu May 01 14:02:45 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:58 2008 -0500"
      },
      "message": "svcrdma: Use ib verbs version of dma_unmap\n\nUse the ib_verbs version of the dma_unmap service in the\nsvc_rdma_put_context function. This should support providers\nusing software rdma.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "356d0a1519867422c3f17f79e2183f8c2d44f8ee",
      "tree": "69c60d0d9605d617e90afbccf9fb054c56958c3b",
      "parents": [
        "1711386c62c97f7fb086a2247d44cdb1f8867640"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Thu May 01 11:25:02 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:57 2008 -0500"
      },
      "message": "svcrdma: Cleanup queued, but unprocessed I/O in svc_rdma_free\n\nWhen the transport is closing, the DTO tasklet may queue data\nthat never gets processed. Clean up resources associated with\nthis I/O.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "1711386c62c97f7fb086a2247d44cdb1f8867640",
      "tree": "4f4f70ada8683fe1e8884493469355acd2633790",
      "parents": [
        "0905c0f0a2346516ecd12f0a4f33dca571b0dccd"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Thu May 01 11:13:50 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:56 2008 -0500"
      },
      "message": "svcrdma: Move the QP and cm_id destruction to svc_rdma_free\n\nMove the destruction of the QP and CM_ID to the free path so that the\nQP cleanup code doesn\u0027t race with the dto_tasklet handling flushed WR.\nThe QP reference is not needed because we now have a reference for\nevery WR.\n\nAlso add a guard in the SQ and RQ completion handlers to ignore\ncalls generated by some providers when the QP is destroyed.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "0905c0f0a2346516ecd12f0a4f33dca571b0dccd",
      "tree": "7beb155c06edd8acbcf9a7b302d599f1be88cf60",
      "parents": [
        "8da91ea8de873ee8be82377ff18637d05e882058"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Thu May 01 10:49:03 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:55 2008 -0500"
      },
      "message": "svcrdma: Add reference for each SQ/RQ WR\n\nAdd a reference on the transport for every outstanding WR.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "8da91ea8de873ee8be82377ff18637d05e882058",
      "tree": "9cfb692f27dde588a360a0f612b8ea14b04a76a4",
      "parents": [
        "47698e083e40bbd3ef87f5561390ae33abb13cd0"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Apr 30 22:00:46 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:54 2008 -0500"
      },
      "message": "svcrdma: Move destroy to kernel thread\n\nSome providers may wait while destroying adapter resources.\nSince it is possible that the last reference is put on the\ndto_tasklet, the actual destroy must be scheduled as a work item.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "47698e083e40bbd3ef87f5561390ae33abb13cd0",
      "tree": "116427837fc578ad419068306e94adb2daa8fdb1",
      "parents": [
        "8740767376b32a7772607e1b2b07cde0c24120cc"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue May 06 11:49:05 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:53 2008 -0500"
      },
      "message": "svcrdma: Shrink scope of spinlock on RQ CQ\n\nThe rq_cq_reap function is only called from the dto_tasklet. The\nonly resource shared with other threads is the sc_rq_dto_q. Move the\nspin lock to protect only this list.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "8740767376b32a7772607e1b2b07cde0c24120cc",
      "tree": "62e9831548e0cdd2e70951a9ab9df4b93ca440aa",
      "parents": [
        "02e7452de74d308ca642f54f7e5ef801ced60a92"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Apr 30 20:44:39 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:52 2008 -0500"
      },
      "message": "svcrdma: Use standard Linux lists for context cache\n\nReplace the one-off linked list implementation used to implement the\ncontext cache with the standard Linux list_head lists. Add a context\ncounter to catch resource leaks. A WARN_ON will be added later to\nensure that we\u0027ve freed all contexts.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "02e7452de74d308ca642f54f7e5ef801ced60a92",
      "tree": "9300b5d12be31a6d48689a4260abb1b81e8a5551",
      "parents": [
        "10a38c33f46d128d11e299acba744bc325cde420"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Apr 30 19:50:56 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:51 2008 -0500"
      },
      "message": "svcrdma: Simplify RDMA_READ deferral buffer management\n\nAn NFS_WRITE requires a set of RDMA_READ requests to fetch the write\ndata from the client. There are two principal pieces of data that\nneed to be tracked: the list of pages that comprise the completed RPC\nand the SGE of dma mapped pages to refer to this list of pages. Previously\nthis whole bit was managed as a linked list of contexts with the\ncontext containing the page list buried in this list. This patch\nsimplifies this processing by not keeping a linked list, but rather only\na pionter from the last submitted RDMA_READ\u0027s context to the context\nthat maps the set of pages that describe the RPC.  This significantly\nsimplifies this code path. SGE contexts are cleaned up inline in the DTO\npath instead of at read completion time.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "10a38c33f46d128d11e299acba744bc325cde420",
      "tree": "3454e7f32f823ad169f09f8e886c7df007c2ce43",
      "parents": [
        "d16d40093a95f2b31007d7a7abefc50e6b27e236"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Apr 30 17:32:17 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:50 2008 -0500"
      },
      "message": "svcrdma: Remove unused READ_DONE context flags bit\n\nThe RDMACTXT_F_READ_DONE bit is not longer used. Remove it.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "d16d40093a95f2b31007d7a7abefc50e6b27e236",
      "tree": "9237f839221763fccb50c6115e9caf9584311539",
      "parents": [
        "58e8f62137f1c55fe3d31234167660f2ce509297"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue May 06 10:04:50 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:49 2008 -0500"
      },
      "message": "svcrdma: Return error from rdma_read_xdr so caller knows to free context\n\nThe rdma_read_xdr function did not discriminate between no read-list and\nan error posting the read-list. This results in a leak of a page if there\nis an error posting the read-list.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "58e8f62137f1c55fe3d31234167660f2ce509297",
      "tree": "44f5b8731574db63d76f2c7bd4122d37c1cba540",
      "parents": [
        "5ac461a6f05499fa233ea43b1de80b679d1eec21"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue May 06 09:45:54 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:48 2008 -0500"
      },
      "message": "svcrdma: Fix error handling during listening endpoint creation\n\nA listening endpoint isn\u0027t known to the generic transport switch until\nthe svc_create_xprt function returns without error. Calling\nsvc_xprt_put within the xpo_create function causes the module reference\ncount to be erroneously decremented.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "5ac461a6f05499fa233ea43b1de80b679d1eec21",
      "tree": "2c49a3c2338e1bcea424fe2ea99ed373741bbe0c",
      "parents": [
        "05a0826a6e6d95ab6e9c3e4a10b58e10f233cc2b"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Apr 25 18:08:59 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:47 2008 -0500"
      },
      "message": "svcrdma: Free context on post_recv error in send_reply\n\nIf an error is encountered trying to post a recv buffer in send_reply,\nfree the passed in context. Return an error to the caller so it is\naware that the request was not posted.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "05a0826a6e6d95ab6e9c3e4a10b58e10f233cc2b",
      "tree": "85355af360f6da6410bee37ba662c59b58e928d4",
      "parents": [
        "120693d12cde0cc735d784c951b53381efec918f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Apr 25 14:11:31 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:47 2008 -0500"
      },
      "message": "svcrdma: Free context on ib_post_recv error\n\nIf there is an error posting the recv WR to the RQ, free the\ncontext associated with the WR. This would leak a context when\nasynchronous errors occurred on the transport while conccurent threads\nwere processing their RPC.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "120693d12cde0cc735d784c951b53381efec918f",
      "tree": "99e5cb62caab24de1b89ee82280de8eeae1ceb20",
      "parents": [
        "9d6347acd2134373c3a4c65a4d43e4f1d59aa012"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Thu Apr 24 14:17:21 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:46 2008 -0500"
      },
      "message": "svcrdma: Add put of connection ESTABLISHED reference in rdma_cma_handler\n\nThe svcrdma transport takes a reference when it gets the ESTABLISHED\nevent from the provider. This reference is supposed to be removed when\nthe DISCONNECT event is received, however, the call to svc_xprt_put\nwas missing in the switch statement. This results in the memory\nassociated with the transport never being freed.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "9d6347acd2134373c3a4c65a4d43e4f1d59aa012",
      "tree": "20e7153e5a238f057a43797329644dd122c43877",
      "parents": [
        "dbcd00eba99945acfc433508a58eadc5dcd18cad"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Apr 25 15:51:27 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:45 2008 -0500"
      },
      "message": "svcrdma: Fix return value in svc_rdma_send\n\nFix the return value on close to -ENOTCONN so caller knows to free context.\nAlso if a thread is waiting for free SQ space, check for close when waking\nto avoid posting WR to a closing transport.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "dbcd00eba99945acfc433508a58eadc5dcd18cad",
      "tree": "c9bd31141dc48b45819d153ead3d311a0db51e40",
      "parents": [
        "0e7f011a19696cc25d68a8d6631fc6c5aa60a54c"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue May 06 11:33:11 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:44 2008 -0500"
      },
      "message": "svcrdma: Fix race with dto_tasklet in svc_rdma_send\n\nThe svc_rdma_send function will attempt to reap SQ WR to make room for\na new request if it finds the SQ full. This function races with the\ndto_tasklet that also reaps SQ WR. To avoid polling and arming the CQ\nunnecessarily move the test_and_clear_bit of the RDMAXPRT_SQ_PENDING\nflag and arming of the CQ to the sq_cq_reap function.\n\nRefactor the rq_cq_reap function to match sq_cq_reap so that the\ncode is easier to follow.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "0e7f011a19696cc25d68a8d6631fc6c5aa60a54c",
      "tree": "2d87c078c835a3629cb0e053bd92911d019878b9",
      "parents": [
        "aa3314c8d6da673b3454549eed45547a79f7cbe1"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Apr 23 16:49:54 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 07:33:43 2008 -0500"
      },
      "message": "svcrdma: Simplify receive buffer posting\n\nThe svcrdma transport provider currently allocates receive buffers\nto the RQ through the xpo_release_rqst method. This approach is overly\ncomplicated since it means that the rqstp rq_xprt_ctxt has to be\nselectively set based on whether the RPC is going to be processed\nimmediately or deferred. Instead, just post the receive buffer when\nwe are certain that we are replying in the send_reply function.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "830bb59b6ece51c36dd456b685d145c69d3b7e1c",
      "tree": "3b8e2d7318875394b561d6ce9c3ff4e3828106c2",
      "parents": [
        "9167f501c6b53492eb2566dd618ce7f55f2856d5"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 11 12:44:27 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "SVCRDMA: Add check for XPT_CLOSE in svc_rdma_send\n\nSVCRDMA: Add check for XPT_CLOSE in svc_rdma_send\n\nThe svcrdma transport can crash if a send is waiting for an\nempty SQ slot and the connection is closed due to an asynchronous error.\nThe crash is caused when svc_rdma_send attempts to send on a deleted\nQP.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0f39cf3d54e67a705773fd0ec56ca3dcd3e9272f",
      "tree": "83f19f0014d0e880fb245906105e903dd6d733d5",
      "parents": [
        "e7eacd36865ae0707f5efae8e4dda421ffcd1b66"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Wed Apr 16 21:09:32 2008 -0700"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Wed Apr 16 21:09:32 2008 -0700"
      },
      "message": "IB/core: Add support for \"send with invalidate\" work requests\n\nAdd a new IB_WR_SEND_WITH_INV send opcode that can be used to mark a\n\"send with invalidate\" work request as defined in the iWARP verbs and\nthe InfiniBand base memory management extensions.  Also put \"imm_data\"\nand a new \"invalidate_rkey\" member in a new \"ex\" union in struct\nib_send_wr. The invalidate_rkey member can be used to pass in an\nR_Key/STag to be invalidated.  Add this new union to struct\nib_uverbs_send_wr.  Add code to copy the invalidate_rkey field in\nib_uverbs_post_send().\n\nFix up low-level drivers to deal with the change to struct ib_send_wr,\nand just remove the imm_data initialization from net/sunrpc/xprtrdma/,\nsince that code never does any send with immediate operations.\n\nAlso, move the existing IB_DEVICE_SEND_W_INV flag to a new bit, since\nthe iWARP drivers currently in the tree set the bit.  The amso1100\ndriver at least will silently fail to honor the IB_SEND_INVALIDATE bit\nif passed in as part of userspace send requests (since it does not\nimplement kernel bypass work request queueing).  Remove the flag from\nall existing drivers that set it until we know which ones are OK.\n\nThe values chosen for the new flag is not consecutive to avoid clashing\nwith flags defined in the XRC patches, which are not merged yet but\nwhich are already in use and are likely to be merged soon.\n\nThis resurrects a patch sent long ago by Mikkel Hagen \u003cmhagen@iol.unh.edu\u003e.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "c8237a5fcea9d49a73275b4c8f541dd42f8da1a4",
      "tree": "b93287513360a027baf3a8936c457ab2e21aa532",
      "parents": [
        "12c22d6ef299ccf0955e5756eb57d90d7577ac68"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 25 22:27:19 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 26 11:24:19 2008 -0700"
      },
      "message": "SVCRDMA: Check num_sge when setting LAST_CTXT bit\n\nThe RDMACTXT_F_LAST_CTXT bit was getting set incorrectly\nwhen the last chunk in the read-list spanned multiple pages. This\nresulted in a kernel panic when the wrong context was used to\nbuild the RPC iovec page list.\n\nRDMA_READ is used to fetch RPC data from the client for\nNFS_WRITE requests. A scatter-gather is used to map the\nadvertised client side buffer to the server-side iovec and\nassociated page list.\n\nWR contexts are used to convey which scatter-gather entries are\nhandled by each WR. When the write data is large, a single RPC may\nrequire multiple RDMA_READ requests so the contexts for a single RPC\nare chained together in a linked list. The last context in this list\nis marked with a bit RDMACTXT_F_LAST_CTXT so that when this WR completes,\nthe CQ handler code can enqueue the RPC for processing.\n\nThe code in rdma_read_xdr was setting this bit on the last two\ncontexts on this list when the last read-list chunk spanned multiple\npages. This caused the svc_rdma_recvfrom logic to incorrectly build\nthe RPC and caused the kernel to crash because the second-to-last\ncontext doesn\u0027t contain the iovec page list.\n\nModified the condition that sets this bit so that it correctly detects\nthe last context for the RPC.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nTested-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3073779f8362d64b804882f5f41c208c4a5e11e",
      "tree": "6aa6a950cc9bed39deafd73bca1e99e108d31b51",
      "parents": [
        "b9e76a00749521f2b080fa8a4fb15f66538ab756"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Mon Mar 24 12:03:03 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 24 11:25:25 2008 -0700"
      },
      "message": "SVCRDMA: Use only 1 RDMA read scatter entry for iWARP adapters\n\nThe iWARP protocol limits RDMA read requests to a single scatter\nentry.  NFS/RDMA has code in rdma_read_max_sge() that is supposed to\nlimit the sge_count for RDMA read requests to 1, but the code to do\nthat is inside an #ifdef RDMA_TRANSPORT_IWARP block.  In the mainline\nkernel at least, RDMA_TRANSPORT_IWARP is an enum and not a\npreprocessor #define, so the #ifdef\u0027ed code is never compiled.\n\nIn my test of a kernel build with -j8 on an NFS/RDMA mount, this\nproblem eventually leads to trouble starting with:\n\n    svcrdma: Error posting send \u003d -22\n    svcrdma : RDMA_READ error \u003d -22\n\nand things go downhill from there.\n\nThe trivial fix is to delete the #ifdef guard.  The check seems to be\na remnant of when the NFS/RDMA code was not merged and needed to\ncompile against multiple kernel versions, although I don\u0027t think it\never worked as intended.  In any case now that the code is upstream\nthere\u0027s no need to test whether the RDMA_TRANSPORT_IWARP constant is\ndefined or not.\n\nWithout this patch, my kernel build on an NFS/RDMA mount using NetEffect\nadapters quickly and 100% reproducibly failed with an error like:\n\n    ld: final link failed: Software caused connection abort\n\nWith the patch applied I was able to complete a kernel build on the\nsame setup.\n\n(Tom Tucker says this is \"actually an _ancient_ remnant when it had to\ncompile against iWARP vs. non-iWARP enabled OFA trees.\")\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nAcked-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fedb3c5a80595d94f7cbe47a6dba9184d869eb8",
      "tree": "50254172a14b3b67c7ab289341e4938cb2cd1273",
      "parents": [
        "c48cbb405c4f338ce3263c44d621eff41d9a95fc"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 11 14:31:40 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 12 12:37:34 2008 -0700"
      },
      "message": "SVCRDMA: Fix erroneous BUG_ON in send_write\n\nThe assertion that checks for sge context overflow is\nincorrectly hard-coded to 32. This causes a kernel bug\ncheck when using big-data mounts. Changed the BUG_ON to\nuse the computed value RPCSVC_MAXPAGES.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c48cbb405c4f338ce3263c44d621eff41d9a95fc",
      "tree": "9b40ce571009d8acae6b1023b5e50247d3f33d15",
      "parents": [
        "ee27a558ae0ff5063ccd6c47ca102c0bb0e3ba27"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 11 14:31:39 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 12 12:37:34 2008 -0700"
      },
      "message": "SVCRDMA: Add xprt refs to fix close/unmount crash\n\nRDMA connection shutdown on an SMP machine can cause a kernel crash due\nto the transport close path racing with the I/O tasklet.\n\nAdditional transport references were added as follows:\n- A reference when on the DTO Q to avoid having the transport\n  deleted while queued for I/O.\n- A reference while there is a QP able to generate events.\n- A reference until the DISCONNECTED event is received on the CM ID\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee1a2c564f67407947e89f1dac75ac0af0ba88c7",
      "tree": "c62ea8d12b876f78662c0f9e0372c6d0d1f0c31a",
      "parents": [
        "af1b8c2ff7c337c4e96db12d6b7b61eaa91aa069"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "tmt@netapp.com",
        "time": "Wed Feb 27 15:04:26 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 07 14:35:32 2008 -0500"
      },
      "message": "SUNRPC: Fix a nfs4 over rdma transport oops\n\nPrevent an RPC oops when freeing a dynamically allocated RDMA\nbuffer, used in certain special-case large metadata operations.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: James Lentini \u003cjlentini@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bb50c8012cbd85b8e105584b32e4d5a2d335dcef",
      "tree": "c5398de8d736fcfaa01dd662ef34fd073c7a6f6c",
      "parents": [
        "fbb7878c1a2ee40a1e983bf20f3dd3a80255dcf2"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Fri Feb 08 16:02:04 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 10 18:11:22 2008 -0500"
      },
      "message": "SUNPRC: Fix printk format warning\n\nnet/sunrpc/xprtrdma/svc_rdma_sendto.c:160: warning: format \u0027%llx\u0027\nexpects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027u64\u0027\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4b8449af75fa2e2d9736ec503a818be626a4e763",
      "tree": "bf08d006b87556fd1a20e46fe7abe3895cf8d7b9",
      "parents": [
        "ef1eac0a3fa86b06aa2d87021f157d13abc1903f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:30 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: makefile\n\nAdd the svcrdma module to the xprtrdma makefile.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ef1eac0a3fa86b06aa2d87021f157d13abc1903f",
      "tree": "a91fab9fc27b3318747fa70e8b2021765ef801df",
      "parents": [
        "c06b540a54ad01d2fda8cfb5d8823b9b3d8d1cb2"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:27 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: ONCRPC RDMA protocol marshalling\n\nThis logic parses the ONCRDMA protocol headers that\nprecede the actual RPC header. It is placed in a separate\nfile to keep all protocol aware code in a single place.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c06b540a54ad01d2fda8cfb5d8823b9b3d8d1cb2",
      "tree": "e983370ad07af62682d59084d5ae8fe1ba9d3684",
      "parents": [
        "d5b31be6823320d81570e0199acd60d3a3f75d85"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:25 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA sendto\n\nThis file implements the RDMA transport sendto function. A RPC reply\non an RDMA transport consists of some number of RDMA_WRITE requests\nfollowed by an RDMA_SEND request. The sendto function parses the\nONCRPC RDMA reply header to determine how to send the reply back to\nthe client. The send queue is sized so as to be able to send complete\nreplies for requests in most cases.  In the event that there are not\nenough SQ WR slots to reply, e.g.  big data, the send will block the\nNFSD thread. The I/O callback functions in svc_rdma_transport.c that\nreap WR completions wake any waiters blocked on the SQ. In general,\nthe goal is not to block NFSD threads and the has_wspace method\nstall requests when the SQ is nearly full.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d5b31be6823320d81570e0199acd60d3a3f75d85",
      "tree": "7b8bee749a3c1b637c6d8e88ee73c802cb3698cd",
      "parents": [
        "377f9b2f4529e0ac702fd7b91e216afd0adc959e"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:23 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA recvfrom\n\nThis file implements the RDMA transport recvfrom function. The function\ndequeues work reqeust completion contexts from an I/O list that it shares\nwith the I/O tasklet in svc_rdma_transport.c. For ONCRPC RDMA, an RPC may\nnot be complete when it is received. Instead, the RDMA header that precedes\nthe RPC message informs the transport where to get the RPC data from on\nthe client and where to place it in the RPC message before it is delivered\nto the server. The svc_rdma_recvfrom function therefore, parses this RDMA\nheader and issues any necessary RDMA operations to fetch the remainder of\nthe RPC from the client.\n\nSpecial handling is required when the request involves an RDMA_READ.\nIn this case, recvfrom submits the RDMA_READ requests to the underlying\ntransport driver and then returns 0. When the transport\ncompletes the last RDMA_READ for the request, it enqueues it on a\nread completion queue and enqueues the transport. The recvfrom code\nfavors this queue over the regular DTO queue when satisfying reads.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
      "tree": "b81b97c041dcc3f3030c4df350ecf734ea8186d4",
      "parents": [
        "ef7fbf59e6f780a0fa03536839e3c42e9ce40ad1"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:21 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA Core Transport Services\n\nThis file implements the core transport data management and I/O\npath. The I/O path for RDMA involves receiving callbacks on interrupt\ncontext. Since all the svc transport locks are _bh locks we enqueue the\ntransport on a list, schedule a tasklet to dequeue data indications from\nthe RDMA completion queue. The tasklet in turn takes _bh locks to\nenqueue receive data indications on a list for the transport. The\nsvc_rdma_recvfrom transport function dequeues data from this list in an\nNFSD thread context.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ef7fbf59e6f780a0fa03536839e3c42e9ce40ad1",
      "tree": "17967c171d3e88fba7726edf0549c5c82fc5b709",
      "parents": [
        "d21b05f101ae732d9bc322f13eea2f59c0aa60f5"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:19 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA Transport Module\n\nThis file implements the RDMA transport module initialization and\ntermination logic and registers the transport sysctl variables.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "33e01dc7f578813cda074ceaeaf68b0f3ffcc393",
      "tree": "a1a84d98ae900b8960bd59742f1e2b767e7cb4f8",
      "parents": [
        "c0e07cb68db353c0ffbb0f82401cf6d79c253aed"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 12:32:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:08 2008 -0500"
      },
      "message": "SUNRPC: Clean up functions that free address_strings array\n\nClean up: document the rule (kfree) and the exceptions\n(RPC_DISPLAY_PROTO and RPC_DISPLAY_NETID) when freeing the objects in\na transport\u0027s address_strings array.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba7392bb37cb12781890f45d7ddee1618e33a036",
      "tree": "4c9a6cb3b22cae407f810c214275ab107ee3fc77",
      "parents": [
        "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:55 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "SUNRPC: Add support for per-client timeout values\n\nIn order to be able to support setting the timeo and retrans parameters on\na per-mountpoint basis, we move the rpc_timeout structure into the\nrpc_clnt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a",
      "tree": "d454fdf3b5da159935ca268648d45b5d1a29027d",
      "parents": [
        "698b6d088e8a5d907596c689d5ae9109611c5b59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:54 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:58 2008 -0500"
      },
      "message": "SUNRPC: Clean up the transport timeout initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d40a8a525c8165bafed233cf0f137e8d10d7e92",
      "tree": "57e7117c055bbd48ceabae0ec6c8b6b0e8df3ea8",
      "parents": [
        "d4b37ff73540ab90bee57b882a10b21e2f97939f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:30:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:42 2008 -0500"
      },
      "message": "SUNRPC: Check a return result\n\nMinor: Replace an empty if statement with a debugging dprintk.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Thomas Talpey \u003cThomas.Talpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d4b37ff73540ab90bee57b882a10b21e2f97939f",
      "tree": "d14a9bec8726721015ea4e50b2c479730fc75725",
      "parents": [
        "2a428b2b8fe2c270a5889086ebe3ab914e3ea7d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:30:49 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:42 2008 -0500"
      },
      "message": "SUNRPC: Fix an unnecessary implicit type cast in rpcrdma_count_chunks()\n\nNit: rl_nchunks is an unsigned integer, so pass it into\nrpcrdma_count_chunks() via an unsigned integer argument.  This eliminates\na harmless mixed sign comparison in rpcrdma_count_chunks()\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Thomas Talpey \u003cThomas.Talpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2a428b2b8fe2c270a5889086ebe3ab914e3ea7d8",
      "tree": "cdd7494963b363fd71bd9c804db24b28bf7c5232",
      "parents": [
        "c087567d3ffb2c7c61e091982e6ca45478394f1a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:30:43 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:41 2008 -0500"
      },
      "message": "SUNRPC: Prevent mixed sign comparisons in rpcrdma_convert_iovs()\n\nKeep the type of the buffer position the same during iovec conversion to\nreduce the likelihood of unexpected results from comparisons and length\ncomputations.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Thomas Talpey \u003cThomas.Talpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62da3b24880bccd4ffc32cf8d9a7e23fab475bdd",
      "tree": "334804c6eb817bd7827f58dbe86ced455160052d",
      "parents": [
        "3ebb067d92ebe5bcfd282acf12bade891d334d07"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 18:44:20 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:27 2008 -0500"
      },
      "message": "SUNRPC: Rename xprt_disconnect()\n\nxprt_disconnect() should really only be called when the transport shutdown\nis completed, and it is time to wake up any pending tasks. Rename it to\nxprt_disconnect_done() in order to reflect the semantical change.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d614434ab77b440b69e66a9bd44e46e7194c34a",
      "tree": "652fecc3b0bb3e020043467b23c178bc67c20314",
      "parents": [
        "ae445d172ab4d342a0a9d64df499cca8d5ad61b3"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 12 03:55:42 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:05 2008 -0800"
      },
      "message": "[SUNRPC]: Use htonl() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "50e1092b3a119bb4660bb6bd2e1749dc2d8ac62e",
      "tree": "68278271b9dc445ad9d2f2b0475930968c8568fc",
      "parents": [
        "5cef338b30c110daf547fb13d99f0c77f2a79fbc"
      ],
      "author": {
        "name": "James Lentini",
        "email": "jlentini@netapp.com",
        "time": "Mon Dec 10 11:24:48 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 11 22:01:59 2007 -0500"
      },
      "message": "SUNRPC xprtrdma: fix XDR tail buf marshalling for all ops\n\nrpcrdma_convert_iovs is passed an xdr_buf representing either an RPC\nrequest or an RPC reply. In the case of a request, several\ncalculations and tests involving pos are unnecessary. In the case of a\nreply, several calculations and tests involving pos are incorrect (the\ncode tests pos against the reply xdr buf\u0027s len field, which is always\n0 at the time rpcrdma_convert_iovs is executed). This change removes\nthe incorrect/unnecessary calculations and tests involving pos.\n\nThis fixes an observed problem when reading certain file sizes over\nNFS/RDMA.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: James Lentini \u003cjlentini@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cfcb43ff7ce28f347a39e1a7519e01850b588718",
      "tree": "3f21947e64316de5499c38d6c76a6ae3dd48996f",
      "parents": [
        "4c1fe2f78a08e2c514a39c91a0eb7b55bbd3c0d2"
      ],
      "author": {
        "name": "James Lentini",
        "email": "jlentini@netapp.com",
        "time": "Mon Nov 26 12:42:44 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:21:19 2007 -0500"
      },
      "message": "SUNRPC: remove NFS/RDMA client\u0027s binary sysctls\n\nSupport for binary sysctls is being deprecated in 2.6.24. Since there\nare no applications using the NFS/RDMA client\u0027s binary sysctls, it\nmakes sense to remove them. The patch below does this while leaving\nthe /proc/sys interface unchanged.\n\nPlease consider this for 2.6.24.\n\nSigned-off-by: James Lentini \u003cjlentini@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5cd97872dca9b79c31224ca014bcea7ca01f5f1",
      "tree": "1d2252ebddd62fb8d6669385e58e27b489c30dba",
      "parents": [
        "e02f5f52cafbea013817d81f1acc4baf50d6324b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Nov 14 17:00:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:41 2007 -0800"
      },
      "message": "sunrpc/xprtrdma/transport.c: fix use-after-free\n\nFix an obvious use-after-free spotted by the Coverity checker.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e08a132b0ef3cf89dfbf1dea2c6248ea624bdcd7",
      "tree": "20ddcedccc8659de54db6c8a063f96a7ae565989",
      "parents": [
        "064f3605be6b9b77151274f60693843cabaa09ec"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Oct 30 00:44:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 30 00:44:32 2007 -0700"
      },
      "message": "[SUNRPC] rpc_rdma: we need to cast u64 to unsigned long long for printing\n\nas some architectures have unsigned long for u64.\n\nnet/sunrpc/xprtrdma/rpc_rdma.c: In function \u0027rpcrdma_create_chunks\u0027:\nnet/sunrpc/xprtrdma/rpc_rdma.c:222: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 4 has type \u0027u64\u0027\nnet/sunrpc/xprtrdma/rpc_rdma.c:234: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 5 has type \u0027u64\u0027\nnet/sunrpc/xprtrdma/rpc_rdma.c: In function \u0027rpcrdma_count_chunks\u0027:\nnet/sunrpc/xprtrdma/rpc_rdma.c:577: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 4 has type \u0027u64\n\nNoticed on PowerPC pseries_defconfig build.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d8a972661832719931b0dd5b80e97215cb93d94",
      "tree": "07e45246c3eb29ac09aa728d87506b3daf75a924",
      "parents": [
        "7a78a1722380dd3cb5a009dbcd007f92b6b87743"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Oct 29 04:37:58 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:41:32 2007 -0700"
      },
      "message": "SUNRPC endianness annotations\n\nrpcrdma stuff lacks endianness annotations for on-the-wire data.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a56daeb7d5c9a05b1cb52ae4bcca05fb6545656e",
      "tree": "427877083ca4aee65d8eef2bb66955d7148ae81e",
      "parents": [
        "102a1a20d2b0a412d4cd4a9f047761f7925405ff"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Oct 16 01:29:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:23 2007 -0700"
      },
      "message": "net/sunrpc/xprtrdma/verbs.c printk warning fix\n\nsparc64:\n\nnet/sunrpc/xprtrdma/verbs.c:1264: warning: long long unsigned int format, u64 arg (arg 3)\nnet/sunrpc/xprtrdma/verbs.c:1264: warning: long long unsigned int format, u64 arg (arg 4)\n\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c56c65fb67d6461f6059dd83b1750a1973a91185",
      "tree": "c31d98a8ad814166f9cac2b196b746cf609c4d28",
      "parents": [
        "e96018280cb36210f4c69663561825114a57e7e1"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:51:18 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:08 2007 -0400"
      },
      "message": "RPCRDMA: rpc rdma verbs interface implementation\n\nThis implements the interface from rpcrdma to the RDMA verbs interface\nsupported by Infniband and iWARP.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: James Lentini \u003cjlentini@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e96018280cb36210f4c69663561825114a57e7e1",
      "tree": "59a303368b9aaf005f5dc97448b1b7dc9789faee",
      "parents": [
        "f58851e6b0f148fb4b2a1c6f70beb2f125863c0f"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:50:42 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:06 2007 -0400"
      },
      "message": "RPCRDMA: rpc rdma protocol implementation\n\nThis implements the marshaling and unmarshaling of the rpcrdma transport\nheaders. Connection management is also addressed.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f58851e6b0f148fb4b2a1c6f70beb2f125863c0f",
      "tree": "816604d59b5de0ee19ca69b19a6f34548dbb82c5",
      "parents": [
        "2cf7ff7a37cc149bd59c4f3bad432f686a4619c8"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:50:12 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:03 2007 -0400"
      },
      "message": "RPCRDMA: rpc rdma transport switch\n\nThis implements the configuration and building of the core transport\nswitch implementation of the rpcrdma transport. Stubs are provided for\nthe rpcrdma protocol handling, and the infiniband/iwarp verbs interface.\nThese are provided in following patches.\n\nSigned-off-by: Tom Talpey \u003ctalpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ]
}
