)]}'
{
  "log": [
    {
      "commit": "c9233eb7b0b11ef176d4bf68da2ce85464b6ec39",
      "tree": "22f9f999e0d48a5f3aae6b32f9ff702eb4db05cc",
      "parents": [
        "548eaca46b3cf4419b6c2be839a106d8641ffb70"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Oct 20 11:51:57 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:47 2009 -0500"
      },
      "message": "sunrpc: add sv_maxconn field to svc_serv (try #3)\n\nsvc_check_conn_limits() attempts to prevent denial of service attacks\nby having the service close old connections once it reaches a\nthreshold. This threshold is based on the number of threads in the\nservice:\n\n\t(serv-\u003esv_nrthreads + 3) * 20\n\nOnce we reach this, we drop the oldest connections and a printk pops\nto warn the admin that they should increase the number of threads.\n\nIncreasing the number of threads isn\u0027t an option however for services\nlike lockd. We don\u0027t want to eliminate this check entirely for such\nservices but we need some way to increase this limit.\n\nThis patch adds a sv_maxconn field to the svc_serv struct. When it\u0027s\nset to 0, we use the current method to calculate the max number of\nconnections. RPC services can then set this on an as-needed basis.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "08cc36cbd1ee7d86422713bb21551eed1326b894",
      "tree": "52cc683387f903b34a7f6f798dcdbae385b58db8",
      "parents": [
        "3c92ec8ae91ecf59d88c798301833d7cf83f2179",
        "46f72f57d279688c4524df78edb5738db730eeef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 30 16:51:43 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 30 16:51:43 2008 -0500"
      },
      "message": "Merge branch \u0027devel\u0027 into next\n"
    },
    {
      "commit": "608207e8884e083ad8b8d33eda868da70f0d63e8",
      "tree": "86073f5f2e4a550bb1efe395954abe3fa91a555e",
      "parents": [
        "68e76ad0baf8f5d5060377c2423ee6eed5c63057"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:17:40 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:17:40 2008 -0500"
      },
      "message": "rpc: pass target name down to rpc level on callbacks\n\nThe rpc client needs to know the principal that the setclientid was done\nas, so it can tell gssd who to authenticate to.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "68e76ad0baf8f5d5060377c2423ee6eed5c63057",
      "tree": "baab3e30cc3b50bc49a553ee884885189ce85a8e",
      "parents": [
        "34769fc488b463cb753fc632f8f5ba56c918b7cb"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:17:15 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:17:15 2008 -0500"
      },
      "message": "nfsd: pass client principal name in rsc downcall\n\nTwo principals are involved in krb5 authentication: the target, who we\nauthenticate *to* (normally the name of the server, like\nnfs/server.citi.umich.edu@CITI.UMICH.EDU), and the source, we we\nauthenticate *as* (normally a user, like bfields@UMICH.EDU)\n\nIn the case of NFSv4 callbacks, the target of the callback should be the\nsource of the client\u0027s setclientid call, and the source should be the\nnfs server\u0027s own principal.\n\nTherefore we allow svcgssd to pass down the name of the principal that\njust authenticated, so that on setclientid we can store that principal\nname with the new client, to be used later on callbacks.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c381060869317b3c84430d4f54965d409cbfe65f",
      "tree": "eca752e4fe61fd6e497fede253f83a01a36a365a",
      "parents": [
        "db75b3d6b5b0dad29860370618ea94d2726641b4"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:08:32 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:08:32 2008 -0500"
      },
      "message": "rpc: add an rpc_pipe_open method\n\nWe want to transition to a new gssd upcall which is text-based and more\neasily extensible.\n\nTo simplify upgrades, as well as testing and debugging, it will help if\nwe can upgrade gssd (to a version which understands the new upcall)\nwithout having to choose at boot (or module-load) time whether we want\nthe new or the old upcall.\n\nWe will do this by providing two different pipes: one named, as\ncurrently, after the mechanism (normally \"krb5\"), and supporting the\nold upcall.  One named \"gssd\" and supporting the new upcall version.\n\nWe allow gssd to indicate which version it supports by its choice of\nwhich pipe to open.\n\nAs we have no interest in supporting *simultaneous* use of both\nversions, we\u0027ll forbid opening both pipes at the same time.\n\nSo, add a new pipe_open callback to the rpc_pipefs api, which the gss\ncode can use to track which pipes have been open, and to refuse opens of\nincompatible pipes.\n\nWe only need this to be called on the first open of a given pipe.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c977a2ef40a38c45537ad03823d0a004f06373f0",
      "tree": "66c640c46f6a434d94e1bbde6b867cbd8b73aad4",
      "parents": [
        "027b6ca02192f381a5a91237ba8a8cf625dc6f6a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Dec 23 16:06:13 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:06:13 2008 -0500"
      },
      "message": "sunrpc: get rid of rpc_rqst.rq_bufsize\n\nrq_bufsize is not used.\n\nSigned-off-by: Mike Sager \u003cMike.Sager@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88a9fe8cae3bb52e82489447f45e8d7ba1409ca8",
      "tree": "acef9d0b7d4c8c2e98faf852ab8bc0173842fbe5",
      "parents": [
        "136221fc3219b3805c48db5da065e8e3467175d4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:31 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:31 2008 -0500"
      },
      "message": "SUNRPC: Remove the last remnant of the BKL...\n\nSomehow, this escaped the previous purge. There should be no need to keep\nany extra locks in the XDR callbacks.\n\nThe NFS client XDR code only writes into private objects, whereas all reads\nof shared objects are confined to fields that do not change, such as\nfilehandles...\n\nDitto for lockd, the NFSv2/v3 client mount code, and rpcbind.\n\nThe nfsd XDR code may require the BKL, but since it does a synchronous RPC\ncall from a thread that already holds the lock, that issue is moot.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3685f25de1b0447fff381c420de1e25bd57c9efb",
      "tree": "90a5d87c0ced1b27f654606d50a9ff13ded6f862",
      "parents": [
        "be859405487324ed548f1ba11dc949b8230ab991"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 31 00:56:49 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:56:49 2008 -0700"
      },
      "message": "misc: replace NIPQUAD()\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": "5b095d98928fdb9e3b75be20a54b7a6cbf6ca9ad",
      "tree": "b6caa0cdbaac016447a790881ad4a6c5dfce6900",
      "parents": [
        "4b7a4274ca63dadd9c4f17fc953f3a5d19855c4c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 29 12:52:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 29 12:52:50 2008 -0700"
      },
      "message": "net: replace %p6 with %pI6\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c6ce78abf6e228d44c3840edb8a4ae0c1299825",
      "tree": "55f228de41dd191609310c03633579eec05b1f33",
      "parents": [
        "38ff4fa49bef77e86b21d95d9ce341a098f02839"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Oct 28 16:09:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 23:02:31 2008 -0700"
      },
      "message": "net: replace uses of NIP6_FMT with %p6\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": "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": "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": "107e0008dfb8bd6366bc8827f5bbbc0c1f795d2d",
      "tree": "12d6be652e3de5cfcfcec5fe0bc37e4b1d983b44",
      "parents": [
        "2937391385807b3da9cd7a39345259caf550b032",
        "67080c82361b7510b602c87b83399421aa2d2895"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Oct 08 18:22:18 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Oct 08 18:22:18 2008 -0400"
      },
      "message": "Merge branch \u0027from-tomtucker\u0027 into for-2.6.28\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": "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": "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": "2937391385807b3da9cd7a39345259caf550b032",
      "tree": "6b75733afd1c5eb9a847c72b0c745ffc24aef559",
      "parents": [
        "26a414092353590ceaa5955bcb53f863d6ea7549"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 17:15:38 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 04 17:12:27 2008 -0400"
      },
      "message": "NLM: Remove unused argument from svc_addsock() function\n\nClean up: The svc_addsock() function no longer uses its \"proto\"\nargument, so remove it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0d3ebb9ae9f9c887518fd4c81a68084111d154d7",
      "tree": "dd6e68bb5f9f25c1c212fec567ba68e13d214e58",
      "parents": [
        "bc45eb8950b8c14487385cfd2bda1613ca8d9703"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Sep 30 13:06:13 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Fri Oct 03 15:39:58 2008 -0500"
      },
      "message": "svcrdma: Add Fast Reg MR Data Types\n\nAdd data types to track Fast Reg Memory Regions. The core data type is\nsvc_rdma_fastreg_mr that associates a device MR with a host kva and page\nlist. A field is added to the WR context to keep track of the FRMR\nused to map the local memory for an RPC.\n\nAn FRMR list and spin lock are added to the transport instance to keep\ntrack of all FRMR allocated for the transport. Also added are device\ncapability flags to indicate what the memory registration\ncapabilities are for the underlying device and whether or not fast\nmemory registration is supported.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\n"
    },
    {
      "commit": "d5b337b4877f7c4e1d761434ee04d045b0201e03",
      "tree": "0c31c4cfb0f2010a87b0f1ae7246cbd50068306e",
      "parents": [
        "97eb89bb0e5d9ab20dbc677cb18fad1421473287"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun Sep 28 09:21:26 2008 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:40 2008 -0400"
      },
      "message": "nfsd: use nfs client rpc callback program\n\nsince commit ff7d9756b501744540be65e172d27ee321d86103\n\"nfsd: use static memory for callback program and stats\"\ndo_probe_callback uses a static callback program\n(NFS4_CALLBACK) rather than the one set in clp-\u003ecl_callback.cb_prog\nas passed in by the client in setclientid (4.0)\nor create_session (4.1).\n\nThis patches introduces rpc_create_args.prognumber that allows\noverriding program-\u003enumber when creating rpc_clnt.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5344b12d4f97d4a9a62d806425977a6ff64b6baf",
      "tree": "48b7200d09b898c66c3e278ffeb12cd4453022bf",
      "parents": [
        "396cb3d003c2ce72b50c8c06fddfbb7516f30eb1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 27 16:57:46 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:38 2008 -0400"
      },
      "message": "SUNRPC: Make svc_addr\u0027s argument a constant\n\nClean up: Add extra type safety and squelch a few compiler complaints\nin upcoming patches.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a26cfad6e0a308a2c68df1f1ef50aabd48b17e6d",
      "tree": "9d200a635720bde73b66fd96e4db9e7ff9be3af7",
      "parents": [
        "7252d575ab0e8771269a3d245c36a05ace5152bd"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Aug 18 19:34:16 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:38 2008 -0400"
      },
      "message": "SUNRPC: Support IPv6 when registering kernel RPC services\n\nIn order to advertise NFS-related services on IPv6 interfaces via\nrpcbind, the kernel RPC server implementation must use\nrpcb_v4_register() instead of rpcb_register().\n\nA new kernel build option allows distributions to use the legacy\nv2 call until they integrate an appropriate user-space rpcbind\ndaemon that can support IPv6 RPC services.\n\nI tried adding some automatic logic to fall back if registering\nwith a v4 protocol request failed, but there are too many corner\ncases.  So I just made it a compile-time switch that distributions\ncan throw when they\u0027ve replaced portmapper with rpcbind.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "14aeb2118d6e9fd9ee988324c740a00c80979093",
      "tree": "ca98af50a2e90fb782605ab6235c3a4b30c5b1a4",
      "parents": [
        "b6632339e3afbcbb438a3c8935190ea22464fc99"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Aug 18 19:34:00 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:37 2008 -0400"
      },
      "message": "SUNRPC: Simplify rpcb_register() API\n\nBruce suggested there\u0027s no need to expose the difference between an error\nsending the PMAP_SET request and an error reply from the portmapper to\nrpcb_register\u0027s callers.  The user space equivalent of rpcb_register() is\npmap_set(3), which returns a bool_t : either the PMAP set worked, or it\ndidn\u0027t.  Simple.\n\nSo let\u0027s remove the \"*okay\" argument from rpcb_register() and\nrpcb_v4_register(), and simply return an error if any part of the call\ndidn\u0027t work.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e851db5b05408b89b9a9429a66814b79fabee2a1",
      "tree": "99bac979ed90efed99c89a49cb77719ab4c0a229",
      "parents": [
        "72d31053f62c4bc464c2783974926969614a8649"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 30 18:45:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:56 2008 -0400"
      },
      "message": "SUNRPC: Add address family field to svc_serv data structure\n\nIntroduce and initialize an address family field in the svc_serv structure.\n\nThis field will determine what family to use for the service\u0027s listener\nsockets and what families are advertised via the local rpcbind daemon.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\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": "14b395e35d1afdd8019d11b92e28041fad591b71",
      "tree": "cff7ba9bed7a38300b19a5bacc632979d64fd9c8",
      "parents": [
        "734b397cd14f3340394a8dd3266bec97d01f034b",
        "5108b27651727b5aba0826e8fd7be71b42428701"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 21:21:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 21:21:46 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.27\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.27\u0027 of git://linux-nfs.org/~bfields/linux: (51 commits)\n  nfsd: nfs4xdr.c do-while is not a compound statement\n  nfsd: Use C99 initializers in fs/nfsd/nfs4xdr.c\n  lockd: Pass \"struct sockaddr *\" to new failover-by-IP function\n  lockd: get host reference in nlmsvc_create_block() instead of callers\n  lockd: minor svclock.c style fixes\n  lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_lock\n  lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_testlock\n  lockd: nlm_release_host() checks for NULL, caller needn\u0027t\n  file lock: reorder struct file_lock to save space on 64 bit builds\n  nfsd: take file and mnt write in nfs4_upgrade_open\n  nfsd: document open share bit tracking\n  nfsd: tabulate nfs4 xdr encoding functions\n  nfsd: dprint operation names\n  svcrdma: Change WR context get/put to use the kmem cache\n  svcrdma: Create a kmem cache for the WR contexts\n  svcrdma: Add flush_scheduled_work to module exit function\n  svcrdma: Limit ORD based on client\u0027s advertised IRD\n  svcrdma: Remove unused wait q from svcrdma_xprt structure\n  svcrdma: Remove unneeded spin locks from __svc_rdma_free\n  svcrdma: Add dma map count and WARN_ON\n  ...\n"
    },
    {
      "commit": "49997d75152b3d23c53b0fa730599f2f74c92c65",
      "tree": "46e93126170d02cfec9505172e545732c1b69656",
      "parents": [
        "a0c80b80e0fb48129e4e9d6a9ede914f9ff1850d",
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 02:39:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 18 02:39:39 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tDocumentation/powerpc/booting-without-of.txt\n\tdrivers/atm/Makefile\n\tdrivers/net/fs_enet/fs_enet-main.c\n\tdrivers/pci/pci-acpi.c\n\tnet/8021q/vlan.c\n\tnet/iucv/iucv.c\n"
    },
    {
      "commit": "c2e1b09ff237c0a3687b9a804cc8bf489743cffc",
      "tree": "9571ae56e29de0d0b165b136863c2363f2a78569",
      "parents": [
        "babe80eb4994dfdc97d5be19a68b5af66d667585"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jul 14 16:03:30 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:08:55 2008 -0400"
      },
      "message": "SUNRPC: Support registering IPv6 interfaces with local rpcbind daemon\n\nIntroduce a new API to register RPC services on IPv6 interfaces to allow\nthe NFS server and lockd to advertise on IPv6 networks.\n\nUnlike rpcb_register(), the new rpcb_v4_register() function uses rpcbind\nprotocol version 4 to contact the local rpcbind daemon.  The version 4\nSET/UNSET procedures allow services to register address families besides\nAF_INET, register at specific network interfaces, and register transport\nprotocols besides UDP and TCP.  All of this functionality is exposed via\nthe new rpcb_v4_register() kernel API.\n\nA user-space rpcbind daemon implementation that supports version 4 of the\nrpcbind protocol is required in order to make use of this new API.\n\nNote that rpcbind version 3 is sufficient to support the new rpcbind\nfacilities listed above, but most extant implementations use version 4.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a486aeda9b2b0d944aecce7871b3186379b898de",
      "tree": "724ee69f012083efcd379733ba783efbe6341ab2",
      "parents": [
        "d25a03cf966f2cf9990dc0bf2a921a554919ea34"
      ],
      "author": {
        "name": "\\\\\\\"J. Bruce Fields\\\\\\",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 09 16:51:35 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:14 2008 -0400"
      },
      "message": "rpc: minor cleanup of scheduler callback code\n\nTry to make the comment here a little more clear and concise.\n\nAlso, this macro definition seems unnecessary.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6b6152c46861dd914d0e6cea9c27df057d6e235",
      "tree": "0d63ce529c13c09a1997da06199e27b049bb55aa",
      "parents": [
        "48b605f83c920d8daa50e43fc2c7f718e04c7bfa"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Mon Jun 09 16:51:31 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:10 2008 -0400"
      },
      "message": "rpc: bring back cl_chatty\n\nThe cl_chatty flag alows us to control whether a given rpc client leaves\n\n\t\"server X not responding, timed out\"\n\nmessages in the syslog.  Such messages make sense for ordinary nfs\nclients (where an unresponsive server means applications on the\nmountpoint are probably hanging), but not for the callback client (which\ncan fail more commonly, with the only result just of disabling some\noptimizations).\n\nPreviously cl_chatty was removed, do to lack of users; reinstate it, and\nuse it for the nfsd\u0027s callback client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e86322f611eef95aafaf726fd3965e5b211f1985",
      "tree": "28547e26df4fc6ae671dc8cc6912a53717e4db08",
      "parents": [
        "b001a1b6aa960949a24c2cdc28257dfcc9428d74",
        "8948896c9e098c6fd31a6a698a598a7cbd7fa40e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jul 03 16:24:06 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jul 03 16:24:06 2008 -0400"
      },
      "message": "Merge branch \u0027for-bfields\u0027 of git://linux-nfs.org/~tomtucker/xprt-switch-2.6 into for-2.6.27\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": "779a48577ba88b6a7e9748a04b0b739f36c5e6f6",
      "tree": "40e1a912d98c66ccae3bc7c99e617c1453d8262d",
      "parents": [
        "94dba4918d4570bfa98776e54a5fa527c848dc78"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon May 19 10:17:09 2008 -0500"
      },
      "committer": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Jul 02 15:01:58 2008 -0500"
      },
      "message": "svcrdma: Remove unused wait q from svcrdma_xprt structure\n\nThe sc_read_wait queue head is no longer used. Remove it.\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": "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": "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": "d00953a53e9a2edbe005c1e596f1e96a8a293401",
      "tree": "3e476deb8cfd5e97a48a725bb21af28dfdea879d",
      "parents": [
        "8837abcab3d16608bd2c7fac051a839d48f2f30c"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Wed Apr 30 12:45:53 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:47:25 2008 -0400"
      },
      "message": "gss_krb5: create a define for token header size and clean up ptr location\n\ncleanup:\nDocument token header size with a #define instead of open-coding it.\n\nDon\u0027t needlessly increment \"ptr\" past the beginning of the header\nwhich makes the values passed to functions more understandable and\neliminates the need for extra \"krb5_hdr\" pointer.\n\nClean up some intersecting  white-space issues flagged by checkpatch.pl.\n\nThis leaves the checksum length hard-coded at 8 for DES.  A later patch\ncleans that up.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a75c5d01e4235a7dd785548ac756f248b1b40107",
      "tree": "602c517b868a219d184e42d23cda4e834396c8ca",
      "parents": [
        "9867d76ca16b3f455f9ca83861f4ce5c94a25928"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 08:40:39 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "sunrpc: remove sv_kill_signal field from svc_serv struct\n\nSince we no longer make any distinction between shutdown signals with\nnfsd, then it becomes easier to just standardize on a particular signal\nto use to bring it down (SIGINT, in this case).\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9867d76ca16b3f455f9ca83861f4ce5c94a25928",
      "tree": "1715f69545bf6e766e6e18b33c39270ea7bd15ce",
      "parents": [
        "e096bbc6488d3e49d476bf986d33752709361277"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 08:40:38 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 23 13:02:49 2008 -0400"
      },
      "message": "knfsd: convert knfsd to kthread API\n\nThis patch is rather large, but I couldn\u0027t figure out a way to break it\nup that would remain bisectable. It does several things:\n\n- change svc_thread_fn typedef to better match what kthread_create expects\n- change svc_pool_map_set_cpumask to be more kthread friendly. Make it\n  take a task arg and and get rid of the \"oldmask\"\n- have svc_set_num_threads call kthread_create directly\n- eliminate __svc_create_thread\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0b040829952d84bf2a62526f0e24b624e0699447",
      "tree": "b2e836e7e64343f19b949e50099bbe2ea554ec30",
      "parents": [
        "573bf470e693f73a6ac437b17a64a10902ba54bf"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jun 10 22:46:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 11 21:00:38 2008 -0700"
      },
      "message": "net: remove CVS keywords\n\nThis patch removes CVS keywords that weren\u0027t updated for a long time\nfrom comments.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "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": "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": "563307b2fa15d687abc54bd980b9847ebf0e3231",
      "tree": "7f16be30217a2e66360ede97aa27d07a4ebd7e55",
      "parents": [
        "10c993a6b5418cb1026775765ba4c70ffb70853d",
        "233607dbbc823caf685e778cabc49fb7f679900b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 24 11:46:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 24 11:46:16 2008 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (80 commits)\n  SUNRPC: Invalidate the RPCSEC_GSS session if the server dropped the request\n  make nfs_automount_list static\n  NFS: remove duplicate flags assignment from nfs_validate_mount_data\n  NFS - fix potential NULL pointer dereference v2\n  SUNRPC: Don\u0027t change the RPCSEC_GSS context on a credential that is in use\n  SUNRPC: Fix a race in gss_refresh_upcall()\n  SUNRPC: Don\u0027t disconnect more than once if retransmitting NFSv4 requests\n  SUNRPC: Remove the unused export of xprt_force_disconnect\n  SUNRPC: remove XS_SENDMSG_RETRY\n  SUNRPC: Protect creds against early garbage collection\n  NFSv4: Attempt to use machine credentials in SETCLIENTID calls\n  NFSv4: Reintroduce machine creds\n  NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n  nfs: fix printout of multiword bitfields\n  nfs: return negative error value from nfs{,4}_stat_to_errno\n  NLM/lockd: Ensure client locking calls use correct credentials\n  NFS: Remove the buggy lock-if-signalled case from do_setlk()\n  NLM/lockd: Fix a race when cancelling a blocking lock\n  NLM/lockd: Ensure that nlmclnt_cancel() returns results of the CANCEL call\n  NLM: Remove the signal masking in nlmclnt_proc/nlmclnt_cancel\n  ...\n"
    },
    {
      "commit": "c0401ea008fb7c785a93428752d69dccafb127ec",
      "tree": "c24c8c6e8871ecba8906098c0360bf3980fedf73",
      "parents": [
        "b7872fe86db78cc96c85a13338ea6e3fe1aef610"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Apr 14 12:27:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "SUNRPC: Update RPC server\u0027s TCP record marker decoder\n\nClean up: Update the RPC server\u0027s TCP record marker decoder to match the\nconstructs used by the RPC client\u0027s TCP socket transport.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8774282c4cef82695ccca8bd09976de5d6e49610",
      "tree": "d5061bde10232534900729aedb3ee63a78183ae5",
      "parents": [
        "e1ba1ab76e68de9f4a93fae8406627924efaed99"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Apr 07 16:45:37 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:42 2008 -0400"
      },
      "message": "SUNRPC: remove svc_create_thread()\n\nNow that the nfs4 callback thread uses the kthread API, there are no\nmore users of svc_create_thread(). Remove it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5743d65c2f77d5145fb4c4262c4dd70c3f078776",
      "tree": "aad96f19d1087e577aff8a88dd08c444c09f5068",
      "parents": [
        "1a448fdb3c5495405bc44d77ea676150f9195444"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Mon Mar 31 10:31:33 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:41 2008 -0400"
      },
      "message": "gss_krb5: consistently use unsigned for seqnum\n\nConsistently use unsigned (u32 vs. s32) for seqnum.\n\nIn get_mic function, send the local copy of seq_send,\nrather than the context version.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "30aef3166ab27f7bcb14c5e809205af8126fa10b",
      "tree": "0c42969032c9ec9a2a0c71406a0eed7b174b43b7",
      "parents": [
        "3d4a6886786f839976c36e62303507692bf87d8d"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Thu Feb 21 13:44:27 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "Remove define for KRB5_CKSUM_LENGTH, which will become enctype-dependent\n\ncleanup: When adding new encryption types, the checksum length\ncan be different for each enctype.  Face the fact that the\ncurrent code only supports DES which has a checksum length of 8.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "67eb6ff610d50da231a37beb634d6dea4b5025ab",
      "tree": "5a14b4e8ca8ed716f541bb681d5fdc0f0b07f767",
      "parents": [
        "6a85fa3adddd3a74bd5b94c4b72668d307b88377"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jan 31 16:14:54 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:37 2008 -0400"
      },
      "message": "svcrpc: move unused field from cache_deferred_req\n\nThis field is set once and never used; probably some artifact of an\nearlier implementation idea.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f15364bd4cf8799a7677b6daeed7b67d9139d974",
      "tree": "bef48016533d184ea171d4b64336a5ad65ebc18e",
      "parents": [
        "d751a7cd0695554498f25d3026ca6710dbb3698f"
      ],
      "author": {
        "name": "Aurélien Charbon",
        "email": "aurelien.charbon@ext.bull.net",
        "time": "Fri Jan 18 15:50:56 2008 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:36 2008 -0400"
      },
      "message": "IPv6 support for NFS server export caches\n\nThis adds IPv6 support to the interfaces that are used to express nfsd\nexports.  All addressed are stored internally as IPv6; backwards\ncompatibility is maintained using mapped addresses.\n\nThanks to Bruce Fields, Brian Haley, Neil Brown and Hideaki Joshifuji\nfor comments\n\nSigned-off-by: Aurelien Charbon \u003caurelien.charbon@bull.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Brian Haley \u003cbrian.haley@hp.com\u003e\nCc:  YOSHIFUJI Hideaki / 吉藤英明 \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7c1d71cf56feebfb5b98219b9d11dfc3a2feca62",
      "tree": "5a073d987ec79900b2aff217a226c8c78e94b579",
      "parents": [
        "636ac43318ce6939c1698fb67e714d421314ed71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 16:52:57 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:12 2008 -0400"
      },
      "message": "SUNRPC: Don\u0027t disconnect more than once if retransmitting NFSv4 requests\n\nNFSv4 requires us to ensure that we break the TCP connection before we\u0027re\nallowed to retransmit a request. However in the case where we\u0027re\nretransmitting several requests that have been sent on the same\nconnection, we need to ensure that we don\u0027t interfere with the attempt to\nreconnect and/or break the connection again once it has been established.\n\nWe therefore introduce a \u0027connection\u0027 cookie that is bumped every time a\nconnection is broken. This allows requests to track if they need to force a\ndisconnection.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c67db3a8a98045744f06fcd6d8f476d9df0ba5c",
      "tree": "4d0041249b48f9ac66560550e0e96c9c86c37891",
      "parents": [
        "78ea323be6380a9313e87fe241809e912e8ae401"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:50:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:56 2008 -0400"
      },
      "message": "NFSv4: Reintroduce machine creds\n\nWe need to try to ensure that we always use the same credentials whenever\nwe re-establish the clientid on the server. If not, the server won\u0027t\nrecognise that we\u0027re the same client, and so may not allow us to recover\nstate.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78ea323be6380a9313e87fe241809e912e8ae401",
      "tree": "6ea9a772ab677012c52a08c6b32e366d7bf129d4",
      "parents": [
        "441092415770ddec648800701895913c4bfd60c1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:49:28 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:53 2008 -0400"
      },
      "message": "NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n\nWith the recent change to generic creds, we can no longer use\ncred-\u003ecr_ops-\u003ecr_name to distinguish between RPCSEC_GSS principals and\nAUTH_SYS/AUTH_NULL identities. Replace it with the rpc_authops-\u003eau_name\ninstead...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6ddf64ffe9d59577a9176856bb6fe69a539f573",
      "tree": "dd12c31555cf9449dd6094428d377186b3c4c373",
      "parents": [
        "24b74bf0c9e08cbda74d3c64af69ad402ed54e04"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 18:52:19 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:52:44 2008 -0400"
      },
      "message": "SUNRPC: Fix up xprt_write_space()\n\nThe rest of the networking layer uses SOCK_ASYNC_NOSPACE to signal whether\nor not we have someone waiting for buffer memory. Convert the SUNRPC layer\nto use the same idiom.\nRemove the unlikely()s in xs_udp_write_space and xs_tcp_write_space. In\nfact, the most common case will be that there is nobody waiting for buffer\nspace.\n\nSOCK_NOSPACE is there to tell the TCP layer whether or not the cwnd was\nlimited by the application window. Ensure that we follow the same idiom as\nthe rest of the networking layer here too.\n\nFinally, ensure that we clear SOCK_ASYNC_NOSPACE once we wake up, so that\nwrite_space() doesn\u0027t keep waking things up on xprt-\u003epending.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5c691044ecbca04dd558fca4c754121689fe1b34",
      "tree": "7a56b63c44766fcca0d7ac245ce0e19077b6f118",
      "parents": [
        "9a559efd4199c9812d339e23cc1b6055366b224f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 16:21:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:41 2008 -0400"
      },
      "message": "SUNRPC: Add an rpc_credop callback for binding a credential to an rpc_task\n\nWe need the ability to treat \u0027generic\u0027 creds specially, since they want to\nbind instances of the auth cred instead of binding themselves.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9a559efd4199c9812d339e23cc1b6055366b224f",
      "tree": "44ae54434a6bd368693ea76b210448496e222e46",
      "parents": [
        "4ccda2cdd8d156b6f49440653d5d6997e0facf97"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 12:24:49 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:38 2008 -0400"
      },
      "message": "SUNRPC: Add a generic RPC credential\n\nAdd an rpc credential that is not tied to any particular auth mechanism,\nbut that can be cached by NFS, and later used to look up a cred for\nwhichever auth mechanism that turns out to be valid when the RPC call is\nbeing made.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ccda2cdd8d156b6f49440653d5d6997e0facf97",
      "tree": "fd75203f002edfd1657c9ca7bcb5494a7b783cf1",
      "parents": [
        "af093835774931de898a9baf7b4041fa0d100f77"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 16:20:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:35 2008 -0400"
      },
      "message": "SUNRPC: Clean up rpcauth_bindcred()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "af093835774931de898a9baf7b4041fa0d100f77",
      "tree": "f7617eb4556ead8615f6c26d8b02fcec8f64c6b3",
      "parents": [
        "25337fdc85951dfeac944f16cb565904c619077a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 12:12:16 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:32 2008 -0400"
      },
      "message": "SUNRPC: Fix RPCAUTH_LOOKUP_ROOTCREDS\n\nThe current RPCAUTH_LOOKUP_ROOTCREDS flag only works for AUTH_SYS\nauthentication, and then only as a special case in the code. This patch\nremoves the auth_sys special casing, and replaces it with generic code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "25337fdc85951dfeac944f16cb565904c619077a",
      "tree": "8c0f37eca64775825ea84ade40460862a2ba377e",
      "parents": [
        "9446389ef612096704fdf18fa79bab423d4110f0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 14:40:14 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:29 2008 -0400"
      },
      "message": "SUNRPC: Fix a bug in rpcauth_lookup_credcache()\n\nThe hash bucket is for some reason always being set to zero.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cdd0972945dbcb8ea24db365d9b0e100af2a27bb",
      "tree": "d41204db20ccc81cecf99a332e2fa764075e8637",
      "parents": [
        "5e4424af9a1f062c6451681dff24a26e27741cc6",
        "cbc20059259edee4ea24c923e6627c394830c972"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:48:05 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:48:05 2008 -0800"
      },
      "message": "Merge branch \u0027cleanups\u0027 into next\n"
    },
    {
      "commit": "5e4424af9a1f062c6451681dff24a26e27741cc6",
      "tree": "fcba54a8fc2d94c1d691ab5b8b956ac71b5cb8d4",
      "parents": [
        "ff2d7db848f8db7cade39e55f78f86d77e0de01a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:53:49 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:28 2008 -0800"
      },
      "message": "SUNRPC: Remove now-redundant RCU-safe rpc_task free path\n\nNow that we\u0027ve tightened up the locking rules for RPC queue wakeups, we can\nremove the RCU-safe kfree calls...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f5fb7b06e4e4ab18326f067f4317b2016ce18af2",
      "tree": "c1a2c972d373d503b432f592b52d4fd2a59a1b46",
      "parents": [
        "eb276c0e10187702928aeaa133e1d3dbaf3eafc7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:50 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:25 2008 -0800"
      },
      "message": "SUNRPC: Eliminate the now-redundant rpc_start_wakeup()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb276c0e10187702928aeaa133e1d3dbaf3eafc7",
      "tree": "f7cfb639d97747f32573dc72970aa9bf589fb0da",
      "parents": [
        "36df9aae3158ce8fc4ede241169dc94ac910d884"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 17:27:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:21 2008 -0800"
      },
      "message": "SUNRPC: Switch tasks to using the rpc_waitqueue\u0027s timer function\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36df9aae3158ce8fc4ede241169dc94ac910d884",
      "tree": "5f6caa22ce9414850fd34eefb54150b120a8f4e7",
      "parents": [
        "f6a1cc89309f0ae847a9b6fe418d1c4215e5bc55"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 18 16:18:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:21:59 2008 -0800"
      },
      "message": "SUNRPC: Add a timer function to wait queues.\n\nThis is designed to replace the timeout timer in the individual rpc_tasks.\nBy putting the timer function in the wait queue, we will eventually be able\nto reduce the total number of timers in use by the RPC subsystem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f6a1cc89309f0ae847a9b6fe418d1c4215e5bc55",
      "tree": "4f5d585dd901718d66d9c354625f9a0bc85c234d",
      "parents": [
        "5d00837b90340af9106dcd93af75fd664c8eb87f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 17:06:55 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:17:27 2008 -0800"
      },
      "message": "SUNRPC: Add a (empty for the moment) destructor for rpc_wait_queues\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d00837b90340af9106dcd93af75fd664c8eb87f",
      "tree": "f537dc84421cf150d66b630e56ea8107078c07a8",
      "parents": [
        "fda1393938035559b417dd5b26b9cc293a7aee00"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 16:34:17 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:44 2008 -0800"
      },
      "message": "SUNRPC: Run rpc timeout functions as callbacks instead of in softirqs\n\nAn audit of the current RPC timeout functions shows that they don\u0027t really\never need to run in the softirq context. As long as the softirq is\nable to signal that the wakeup is due to a timeout (which it can do by\nsetting task-\u003etk_status to -ETIMEDOUT) then the callback functions can just\nrun as standard task-\u003etk_callback functions (in the rpciod/process\ncontext).\n\nThe only possible border-line case would be xprt_timer() for the case of\nUDP, when the callback is used to reduce the size of the transport\ncongestion window. In testing, however, the effect of moving that update\nto a callback would appear to be minor.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fda1393938035559b417dd5b26b9cc293a7aee00",
      "tree": "8190a6ad7a81974dd5f782f2ab872753742ff68d",
      "parents": [
        "96ef13b283934fbf60b732e6c4ce23e8babd0042"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 16:34:12 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:42 2008 -0800"
      },
      "message": "SUNRPC: Convert users of rpc_wake_up_task to use rpc_wake_up_queued_task\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "96ef13b283934fbf60b732e6c4ce23e8babd0042",
      "tree": "9efa8e92ff2e7f27746b65214a43ca3a4aed1b14",
      "parents": [
        "fde95c7554aa77f9a242f32b0b5f8f15395abf52"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 15:46:41 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:40 2008 -0800"
      },
      "message": "SUNRPC: Add a new helper rpc_wake_up_queued_task()\n\nIn all cases where we currently use rpc_wake_up_task(), we almost always\nknow on which waitqueue the rpc_task is actually sleeping. This will allows\nus to simplify the queue locking in a future patch.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "32bfb5c0f495dd88ef6bac4b76885d0820563739",
      "tree": "01adff1612a7aaad148a322b79bc02224e8ca735",
      "parents": [
        "383ba71938519959be8e0b598ec658f0c211ff45"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 19 20:04:21 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:34 2008 -0800"
      },
      "message": "SUNRPC: Allow the rpc_release() callback to be run on another workqueue\n\nA lot of the work done by the rpc_release() callback is inappropriate for\nrpciod as it will often involve things like starting a new rpc call in\norder to clean up state after an interrupted NFSv4 open() call, or\ncalls to mntput(), etc.\n\nThis patch allows the caller of rpc_run_task() to specify that the\nrpc_release callback should run on a different workqueue than the default\nrpciod_workqueue.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cbc20059259edee4ea24c923e6627c394830c972",
      "tree": "648caf84d855d497880fdd0cfb58319806d80fd1",
      "parents": [
        "2785259631697ebb0749a3782cca206e2e542939"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 14 11:11:30 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 14 11:17:24 2008 -0500"
      },
      "message": "SUNRPC: Declare as const the rpc_message arguments to rpc_call_sync/async\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbb7878c1a2ee40a1e983bf20f3dd3a80255dcf2",
      "tree": "9a03b3a15f105299bd3540dc20fb7e2c7953e29b",
      "parents": [
        "c64e80d55db81df22a7f25b75ab4ba4c55db4749"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Feb 07 23:10:21 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 10 18:11:16 2008 -0500"
      },
      "message": "nfsd: clean up svc_reserve_auth()\n\nThis is a void function attempting to return the return value from\nanother void function, which seems harmless but extremely weird, and\napparently makes some compilers complain.\n\nWhile we\u0027re there, clean up a little (e.g. the switch statement had a\nminor style problem and seemed overkill as long as there\u0027s only one\ncase).\n\nThanks to Trond for noticing this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0113ab34644649aceaac37ef4b7e5c7d5c183be3",
      "tree": "b0b1cde6e10b550bf4b9fcc523d855a6a1fade9d",
      "parents": [
        "87d26ea7771ad637035e6bd5a2700d81ee9162da"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 29 10:30:54 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:15 2008 -0500"
      },
      "message": "SUNRPC: spin svc_rqst initialization to its own function\n\nMove the initialzation in __svc_create_thread that happens prior to\nthread creation to a new function. Export the function to allow\nservices to have better control over the svc_rqst structs.\n\nAlso rearrange the rqstp initialization to prevent NULL pointer\ndereferences in svc_exit_thread in case allocations fail.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d21b05f101ae732d9bc322f13eea2f59c0aa60f5",
      "tree": "1b90266dad242b0e9fe213ede4e39af3443a38aa",
      "parents": [
        "9571af18fa1e4a431dc6f6023ddbd87d1112fd5d"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:17 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRMDA Header File\n\nThis file defines the data types used by the SVCRDMA transport module.\nThe principle data structure is the transport specific extension to\nthe svcxprt structure.\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": "9571af18fa1e4a431dc6f6023ddbd87d1112fd5d",
      "tree": "d8eafdea71ea1c13fe9c733442d41857e17901ac",
      "parents": [
        "a217813f9067b785241cb7f31956e51d2071703a"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:37 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "svc: Add svc_xprt_names service to replace svc_sock_names\n\nCreate a transport independent version of the svc_sock_names function.\n\nThe toclose capability of the svc_sock_names service can be implemented\nusing the svc_xprt_find and svc_xprt_close services.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7fcb98d58cb4d18af6386f71025fc5192f25fbca",
      "tree": "7ccd884928c644cebd717306937565fbcdc9dd88",
      "parents": [
        "dc9a16e49dbba3dd042e6aec5d9a7929e099a89b"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:33 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Add svc API that queries for a transport instance\n\nAdd a new svc function that allows a service to query whether a\ntransport instance has already been created. This is used in lockd\nto determine whether or not a transport needs to be created when\na lockd instance is brought up.\n\nSpecifying 0 for the address family or port is effectively a wild-card,\nand will result in matching the first transport in the service\u0027s list\nthat has a matching class name.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dc9a16e49dbba3dd042e6aec5d9a7929e099a89b",
      "tree": "5aee4ec75869697350d3cebdfaaf8e10435ebbc2",
      "parents": [
        "260c1d1298f6703d38fdccd3dd5a310766327340"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:31 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Add /proc/sys/sunrpc/transport files\n\nAdd a file that when read lists the set of registered svc\ntransports.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "260c1d1298f6703d38fdccd3dd5a310766327340",
      "tree": "95bf71a81a9bba5d1e69940ccba99943682029c5",
      "parents": [
        "0f0257eaa5d29b80f6ab2c40ed21aa65bb4527f6"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:29 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Add transport hdr size for defer/revisit\n\nSome transports have a header in front of the RPC header. The current\ndefer/revisit processing considers only the iov_len and arg_len to\ndetermine how much to back up when saving the original request\nto revisit. Add a field to the rqstp structure to save the size\nof the transport header so svc_defer can correctly compute\nthe start of a request.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0f0257eaa5d29b80f6ab2c40ed21aa65bb4527f6",
      "tree": "542f64ec74fc045c06f5a1ffc0d48f823de12ccb",
      "parents": [
        "18d19f949d5a9c927b2b88402630c5137971b619"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:27 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Move the xprt independent code to the svc_xprt.c file\n\nThis functionally trivial patch moves all of the transport independent\nfunctions from the svcsock.c file to the transport independent svc_xprt.c\nfile.\n\nIn addition the following formatting changes were made:\n- White space cleanup\n- Function signatures on single line\n- The inline directive was removed\n- Lines over 80 columns were reformatted\n- The term \u0027socket\u0027 was changed to \u0027transport\u0027 in comments\n- The SMP comment was moved and updated.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "57b1d3babaafea1c395c932914e38c2ff9493001",
      "tree": "5580e5f084f4473ac6b7b00905d4abd0328e5617",
      "parents": [
        "4e5caaa5f24b3df1fe01097e1e7576461e70d491"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:22 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Removing remaining references to rq_sock in rqstp\n\nThis functionally empty patch removes rq_sock and unamed union\nfrom rqstp structure.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9dbc240f199c16c3c0859c255ad52a663d8ee51d",
      "tree": "0e81dd425c36590e65accfe9654d905632783c7f",
      "parents": [
        "8c7b0172a1db8120d25ecb4eff69664c52ee7639"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:12 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Move the sockaddr information to svc_xprt\n\nThis patch moves the transport sockaddr to the svc_xprt\nstructure.  Convenience functions are added to set and\nget the local and remote addresses of a transport from\nthe transport provider as well as determine the length\nof a sockaddr.\n\nA transport is responsible for setting the xpt_local\nand xpt_remote addresses in the svc_xprt structure as\npart of transport creation and xpo_accept processing. This\ncannot be done in a generic way and in fact varies\nbetween TCP, UDP and RDMA. A set of xpo_ functions\n(e.g. getlocalname, getremotename) could have been\nadded but this would have resulted in additional\ncaching and copying of the addresses around.  Note that\nthe xpt_local address should also be set on listening\nendpoints; for TCP/RDMA this is done as part of\nendpoint creation.\n\nFor connected transports like TCP and RDMA, the addresses\nnever change and can be set once and copied into the\nrqstp structure for each request. For UDP, however, the\nlocal and remote addresses may change for each request. In\nthis case, the address information is obtained from the\nUDP recvmsg info and copied into the rqstp structure from\nthere.\n\nA svc_xprt_local_port function was also added that returns\nthe local port given a transport. This is used by\nsvc_create_xprt when returning the port associated with\na newly created transport, and later when creating a\ngeneric find transport service to check if a service is\nalready listening on a given port.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8c7b0172a1db8120d25ecb4eff69664c52ee7639",
      "tree": "d048ab4c5c378d2a90e5dd52a09dee4e24712cc9",
      "parents": [
        "def13d7401e9b95bbd34c20057ebeb2972708b1b"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:10 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Make deferral processing xprt independent\n\nThis patch moves the transport independent sk_deferred list to the svc_xprt\nstructure and updates the svc_deferred_req structure to keep pointers to\nsvc_xprt\u0027s directly. The deferral processing code is also moved out of the\ntransport dependent recvfrom functions and into the generic svc_recv path.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "def13d7401e9b95bbd34c20057ebeb2972708b1b",
      "tree": "afea72afdfe80c645eaf75aa828a49a6e1dec864",
      "parents": [
        "4bc6c497b26a7984cac842a09e2e8f8c46242782"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:08 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Move the authinfo cache to svc_xprt.\n\nMove the authinfo cache to svc_xprt. This allows both the TCP and RDMA\ntransports to share this logic. A flag bit is used to determine if\nauth information is to be cached or not. Previously, this code looked\nat the transport protocol.\n\nI\u0027ve also changed the spin_lock/unlock logic so that a lock is not taken for\ntransports that are not caching auth info.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4bc6c497b26a7984cac842a09e2e8f8c46242782",
      "tree": "4b4d4d700ed6539e3b13bc2b66af4bdf179b35aa",
      "parents": [
        "6bc5ab1367e43e59671d3fd19e6b0d2e4c138323"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:05 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Remove sk_lastrecv\n\nWith the implementation of the new mark and sweep algorithm for shutting\ndown old connections, the sk_lastrecv field is no longer needed.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a6046f71f2b598af241e7496a8ead90f2979224b",
      "tree": "bceb453e9c7aac478a86253528ff2a00b0726fcc",
      "parents": [
        "a50fea26b9d2aa7b66fdd6d9579de10827ec086a"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:01 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Change svc_sock_received to svc_xprt_received and export it\n\nAll fields touched by svc_sock_received are now transport independent.\nChange it to use svc_xprt directly. This function is called from\ntransport dependent code, so export it.\n\nUpdate the comment to clearly state the rules for calling this function.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a50fea26b9d2aa7b66fdd6d9579de10827ec086a",
      "tree": "efb7893e6e45b417405e9320d3b82100b1684daf",
      "parents": [
        "f6150c3cab6e788afacb07470be3c6b4a722f1ed"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:59 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Make svc_send transport neutral\n\nMove the sk_mutex field to the transport independent svc_xprt structure.\nNow all the fields that svc_send touches are transport neutral. Change the\nsvc_send function to use the transport independent svc_xprt directly instead\nof the transport dependent svc_sock structure.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7a90e8cc21ad80529b3a3371dc97acc8832cc592",
      "tree": "3a5527b0cce3c046067c72705d6acd5d6bc1184b",
      "parents": [
        "7a18208383ab3f3ce4a1f4e0536acc9372523d81"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:55 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Move sk_reserved to svc_xprt\n\nThis functionally trivial patch moves the sk_reserved field to the\ntransport independent svc_xprt structure.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7a18208383ab3f3ce4a1f4e0536acc9372523d81",
      "tree": "851a1cc29d753297c2e7cf4cb4a95c4af7868427",
      "parents": [
        "bb5cf160b282644c4491afbf76fbc66f5dc35030"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:53 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Make close transport independent\n\nMove sk_list and sk_ready to svc_xprt. This involves close because these\nlists are walked by svcs when closing all their transports. So I combined\nthe moving of these lists to svc_xprt with making close transport independent.\n\nThe svc_force_sock_close has been changed to svc_close_all and takes a list\nas an argument. This removes some svc internals knowledge from the svcs.\n\nThis code races with module removal and transport addition.\n\nThanks to Simon Holm Thøgersen for a compile fix.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Simon Holm Thøgersen \u003codie@cs.aau.dk\u003e\n"
    },
    {
      "commit": "bb5cf160b282644c4491afbf76fbc66f5dc35030",
      "tree": "76443ea6f87faf4d2e039ca6d2e3a7008261a1d2",
      "parents": [
        "02fc6c36188be0ad19502cfd39266150ffab7603"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:50 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Move sk_server and sk_pool to svc_xprt\n\nThis is another incremental change that moves transport independent\nfields from svc_sock to the svc_xprt structure. The changes\nshould be functionally null.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "02fc6c36188be0ad19502cfd39266150ffab7603",
      "tree": "e1d85b49c18944209232bbb1ebaf51001b6af602",
      "parents": [
        "e1b3157f9710622bad6c7747d3b08ed3d2394cf6"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:48 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Move sk_flags to the svc_xprt structure\n\nThis functionally trivial change moves the transport independent sk_flags\nfield to the transport independent svc_xprt structure.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e1b3157f9710622bad6c7747d3b08ed3d2394cf6",
      "tree": "e03687e0363fdb2307f7e4909a735e8d1331050a",
      "parents": [
        "d7c9f1ed972b4a468dd24a2457721704dfe9ca70"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:46 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Change sk_inuse to a kref\n\nChange the atomic_t reference count to a kref and move it to the\ntransport indepenent svc_xprt structure. Change the reference count\nwrapper names to be generic.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d7c9f1ed972b4a468dd24a2457721704dfe9ca70",
      "tree": "40cd2b38db79df4d90753b58789c3e4bc274095f",
      "parents": [
        "b700cbb11fced2a0e953fdd19eac07ffaad86598"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:44 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:09 2008 -0500"
      },
      "message": "svc: Change services to use new svc_create_xprt service\n\nModify the various kernel RPC svcs to use the svc_create_xprt service.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b700cbb11fced2a0e953fdd19eac07ffaad86598",
      "tree": "345028d75f049b63bcec574158b94e205e9684bc",
      "parents": [
        "f9f3cc4fae04c87c815a4b473fb577cf74ef27da"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:42 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:09 2008 -0500"
      },
      "message": "svc: Add a generic transport svc_create_xprt function\n\nThe svc_create_xprt function is a transport independent version\nof the svc_makesock function.\n\nSince transport instance creation contains transport dependent and\nindependent components, add an xpo_create transport function. The\ntransport implementation of this function allocates the memory for the\nendpoint, implements the transport dependent initialization logic, and\ncalls svc_xprt_init to initialize the transport independent field (svc_xprt)\nin it\u0027s data structure.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "38a417cc993f4535548e47207f9894e7c27e05e4",
      "tree": "f8035bcf6bc9a4831b152f5556b14cb3b48a72b8",
      "parents": [
        "d7979ae4a050a45b78af51832475001b68263d2a"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:36 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Add xpo_accept transport function\n\nPreviously, the accept logic looked into the socket state to determine\nwhether to call accept or recv when data-ready was indicated on an endpoint.\nSince some transports don\u0027t use sockets, this logic now uses a flag\nbit (SK_LISTENER) to identify listening endpoints. A transport function\n(xpo_accept) allows each transport to define its own accept processing.\nA transport\u0027s initialization logic is reponsible for setting the\nSK_LISTENER bit. I didn\u0027t see any way to do this in transport independent\nlogic since the passive side of a UDP connection doesn\u0027t listen and\nalways recv\u0027s.\n\nIn the svc_recv function, if the SK_LISTENER bit is set, the transport\nxpo_accept function is called to handle accept processing.\n\nNote that all functions are defined even if they don\u0027t make sense\nfor a given transport. For example, accept doesn\u0027t mean anything for\nUDP. The function is defined anyway and bug checks if called. The\nUDP transport should never set the SK_LISTENER bit.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "323bee32e9bef14c6dd943ecc8e8cd373a9c94d9",
      "tree": "5779a724dfcbe3aee1f06d9eb989931d1dcfa163",
      "parents": [
        "e831fe65b10199e1e301a7316c66d6ced133712d"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:31 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Add a transport function that checks for write space\n\nIn order to avoid blocking a service thread, the receive side checks\nto see if there is sufficient write space to reply to the request.\nEach transport has a different mechanism for determining if there is\nenough write space to reply.\n\nThe code that checked for write space was coupled with code that\nchecked for CLOSE and CONN. These checks have been broken out into\nseparate statements to make the code easier to read.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e831fe65b10199e1e301a7316c66d6ced133712d",
      "tree": "33436ef94e099e854c4824e78cd62f341e5f357a",
      "parents": [
        "755cceaba7555027e61dfa79f1e55bdfc6906633"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:29 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Add xpo_prep_reply_hdr\n\nSome transports add fields to the RPC header for replies, e.g. the TCP\nrecord length. This function is called when preparing the reply header\nto allow each transport to add whatever fields it requires.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "755cceaba7555027e61dfa79f1e55bdfc6906633",
      "tree": "13fa81b19e96af8130414b3535ced72b910a1aef",
      "parents": [
        "5148bf4ebc1f59dc6a0ec43a220c55ff0771246e"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:27 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Add per-transport delete functions\n\nAdd transport specific xpo_detach and xpo_free functions. The xpo_detach\nfunction causes the transport to stop delivering data-ready events\nand enqueing the transport for I/O.\n\nThe xpo_free function frees all resources associated with the particular\ntransport instance.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5148bf4ebc1f59dc6a0ec43a220c55ff0771246e",
      "tree": "d7ba46947483308dc77736335b05d1124befa7c4",
      "parents": [
        "5d137990f5860451a6e0428e0903f62933d05287"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:25 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Add transport specific xpo_release function\n\nThe svc_sock_release function releases pages allocated to a thread. For\nUDP this frees the receive skb. For RDMA it will post a receive WR\nand bump the client credit count.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5d137990f5860451a6e0428e0903f62933d05287",
      "tree": "71f57e8a13138530c8c82f9de19067687d0b428d",
      "parents": [
        "490231558e058547da4ffab6d8ce8e28771749cc"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:23 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Move sk_sendto and sk_recvfrom to svc_xprt_class\n\nThe sk_sendto and sk_recvfrom are function pointers that allow svc_sock\nto be used for both UDP and TCP. Move these function pointers to the\nsvc_xprt_ops structure.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    }
  ],
  "next": "490231558e058547da4ffab6d8ce8e28771749cc"
}
