)]}'
{
  "log": [
    {
      "commit": "63e9b66e29357dd12e8b1d3ebf7036e7591f81e3",
      "tree": "5aa6a70a8f4bbf306e2825a1e2fa2660c2c1c187",
      "parents": [
        "687fcdf741e4a268c2c7bac8b3734de761bb9719",
        "ea339d46b93c7b16e067a29aad1812f7a389815a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 02 14:31:28 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 02 14:31:28 2008 +1100"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-linus\u0027 of git://linux-nfs.org/~bfields/linux: (100 commits)\n  SUNRPC: RPC program information is stored in unsigned integers\n  SUNRPC: Move exported symbol definitions after function declaration part 2\n  NLM: tear down RPC clients in nlm_shutdown_hosts\n  SUNRPC: spin svc_rqst initialization to its own function\n  nfsd: more careful input validation in nfsctl write methods\n  lockd: minor log message fix\n  knfsd: don\u0027t bother mapping putrootfh enoent to eperm\n  rdma: makefile\n  rdma: ONCRPC RDMA protocol marshalling\n  rdma: SVCRDMA sendto\n  rdma: SVCRDMA recvfrom\n  rdma: SVCRDMA Core Transport Services\n  rdma: SVCRDMA Transport Module\n  rdma: SVCRMDA Header File\n  svc: Add svc_xprt_names service to replace svc_sock_names\n  knfsd: Support adding transports by writing portlist file\n  svc: Add svc API that queries for a transport instance\n  svc: Add /proc/sys/sunrpc/transport files\n  svc: Add transport hdr size for defer/revisit\n  svc: Move the xprt independent code to the svc_xprt.c file\n  ...\n"
    },
    {
      "commit": "ea339d46b93c7b16e067a29aad1812f7a389815a",
      "tree": "2e260fc9d3310a1ff11e61adaa21d3350e5f9013",
      "parents": [
        "d2f7e79e3bad31b3d52c405085b9e01e5f6c01e0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:56 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 17:01:31 2008 -0500"
      },
      "message": "SUNRPC: RPC program information is stored in unsigned integers\n\nClean up: When looping over RPC version and procedure numbers, use\nunsigned index variables.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d2f7e79e3bad31b3d52c405085b9e01e5f6c01e0",
      "tree": "a7247bf6849ecd2df43fcceca1f296c88af9866e",
      "parents": [
        "d801b861681116ea23a7fb87a70bf463d29c8b9c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jul 14 15:39:58 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 17:01:24 2008 -0500"
      },
      "message": "SUNRPC: Move exported symbol definitions after function declaration part 2\n\nDo it for the server code...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\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": "4b8449af75fa2e2d9736ec503a818be626a4e763",
      "tree": "bf08d006b87556fd1a20e46fe7abe3895cf8d7b9",
      "parents": [
        "ef1eac0a3fa86b06aa2d87021f157d13abc1903f"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:30 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: makefile\n\nAdd the svcrdma module to the xprtrdma makefile.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ef1eac0a3fa86b06aa2d87021f157d13abc1903f",
      "tree": "a91fab9fc27b3318747fa70e8b2021765ef801df",
      "parents": [
        "c06b540a54ad01d2fda8cfb5d8823b9b3d8d1cb2"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:27 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: ONCRPC RDMA protocol marshalling\n\nThis logic parses the ONCRDMA protocol headers that\nprecede the actual RPC header. It is placed in a separate\nfile to keep all protocol aware code in a single place.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c06b540a54ad01d2fda8cfb5d8823b9b3d8d1cb2",
      "tree": "e983370ad07af62682d59084d5ae8fe1ba9d3684",
      "parents": [
        "d5b31be6823320d81570e0199acd60d3a3f75d85"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:25 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA sendto\n\nThis file implements the RDMA transport sendto function. A RPC reply\non an RDMA transport consists of some number of RDMA_WRITE requests\nfollowed by an RDMA_SEND request. The sendto function parses the\nONCRPC RDMA reply header to determine how to send the reply back to\nthe client. The send queue is sized so as to be able to send complete\nreplies for requests in most cases.  In the event that there are not\nenough SQ WR slots to reply, e.g.  big data, the send will block the\nNFSD thread. The I/O callback functions in svc_rdma_transport.c that\nreap WR completions wake any waiters blocked on the SQ. In general,\nthe goal is not to block NFSD threads and the has_wspace method\nstall requests when the SQ is nearly full.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d5b31be6823320d81570e0199acd60d3a3f75d85",
      "tree": "7b8bee749a3c1b637c6d8e88ee73c802cb3698cd",
      "parents": [
        "377f9b2f4529e0ac702fd7b91e216afd0adc959e"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:23 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA recvfrom\n\nThis file implements the RDMA transport recvfrom function. The function\ndequeues work reqeust completion contexts from an I/O list that it shares\nwith the I/O tasklet in svc_rdma_transport.c. For ONCRPC RDMA, an RPC may\nnot be complete when it is received. Instead, the RDMA header that precedes\nthe RPC message informs the transport where to get the RPC data from on\nthe client and where to place it in the RPC message before it is delivered\nto the server. The svc_rdma_recvfrom function therefore, parses this RDMA\nheader and issues any necessary RDMA operations to fetch the remainder of\nthe RPC from the client.\n\nSpecial handling is required when the request involves an RDMA_READ.\nIn this case, recvfrom submits the RDMA_READ requests to the underlying\ntransport driver and then returns 0. When the transport\ncompletes the last RDMA_READ for the request, it enqueues it on a\nread completion queue and enqueues the transport. The recvfrom code\nfavors this queue over the regular DTO queue when satisfying reads.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "377f9b2f4529e0ac702fd7b91e216afd0adc959e",
      "tree": "b81b97c041dcc3f3030c4df350ecf734ea8186d4",
      "parents": [
        "ef7fbf59e6f780a0fa03536839e3c42e9ce40ad1"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:21 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA Core Transport Services\n\nThis file implements the core transport data management and I/O\npath. The I/O path for RDMA involves receiving callbacks on interrupt\ncontext. Since all the svc transport locks are _bh locks we enqueue the\ntransport on a list, schedule a tasklet to dequeue data indications from\nthe RDMA completion queue. The tasklet in turn takes _bh locks to\nenqueue receive data indications on a list for the transport. The\nsvc_rdma_recvfrom transport function dequeues data from this list in an\nNFSD thread context.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ef7fbf59e6f780a0fa03536839e3c42e9ce40ad1",
      "tree": "17967c171d3e88fba7726edf0549c5c82fc5b709",
      "parents": [
        "d21b05f101ae732d9bc322f13eea2f59c0aa60f5"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Wed Dec 12 16:13:19 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:14 2008 -0500"
      },
      "message": "rdma: SVCRDMA Transport Module\n\nThis file implements the RDMA transport module initialization and\ntermination logic and registers the transport sysctl variables.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "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": "a217813f9067b785241cb7f31956e51d2071703a",
      "tree": "5bda9ab6a461562975506d2100b16db19e3e628b",
      "parents": [
        "7fcb98d58cb4d18af6386f71025fc5192f25fbca"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:35 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "knfsd: Support adding transports by writing portlist file\n\nUpdate the write handler for the portlist file to allow creating new\nlistening endpoints on a transport. The general form of the string is:\n\n\u003ctransport_name\u003e\u003cspace\u003e\u003cport number\u003e\n\nFor example:\n\necho \"tcp 2049\" \u003e /proc/fs/nfsd/portlist\n\nThis is intended to support the creation of a listening endpoint for\nRDMA transports without adding #ifdef code to the nfssvc.c file.\n\nTransports can also be removed as follows:\n\n\u0027-\u0027\u003ctransport_name\u003e\u003cspace\u003e\u003cport number\u003e\n\nFor example:\n\necho \"-tcp 2049\" \u003e /proc/fs/nfsd/portlist\n\nAttempting to add a listener with an invalid transport string results\nin EPROTONOSUPPORT and a perror string of \"Protocol not supported\".\n\nAttempting to remove an non-existent listener (.e.g. bad proto or port)\nresults in ENOTCONN and a perror string of\n\"Transport endpoint is not connected\"\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": "18d19f949d5a9c927b2b88402630c5137971b619",
      "tree": "f66d3366d322c2fa78166bf6a4164c7caf7d14bd",
      "parents": [
        "57b1d3babaafea1c395c932914e38c2ff9493001"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:25 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Make svc_check_conn_limits xprt independent\n\nThe svc_check_conn_limits function only manipulates xprt fields. Change references\nto svc_sock-\u003esk_xprt to svc_xprt directly.\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": "4e5caaa5f24b3df1fe01097e1e7576461e70d491",
      "tree": "c682473e9a40f4e8a8a1317906a516b41d47ec30",
      "parents": [
        "9f8bfae693c724120ffc8fb77564f6deb508daf3"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:20 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Move create logic to common code\n\nMove the svc transport list logic into common transport creation code.\nRefactor this code path to make the flow of control easier to read.\n\nMove the setting and clearing of the BUSY_BIT during transport creation\nto common code.\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": "9f8bfae693c724120ffc8fb77564f6deb508daf3",
      "tree": "abcd5cad6a5a4e798d428a8568e5256adc8e1cb8",
      "parents": [
        "c36adb2a7f9132b37d4b669b2e2c04e46d5188b2"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:18 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:13 2008 -0500"
      },
      "message": "svc: Make svc_age_temp_sockets svc_age_temp_transports\n\nThis function is transport independent. Change it to use svc_xprt directly\nand change it\u0027s name to reflect this.\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": "c36adb2a7f9132b37d4b669b2e2c04e46d5188b2",
      "tree": "0047a71515d96cdd4085adbd1691232db42c2b9f",
      "parents": [
        "eab996d4aca7a9d8621d2b98c00ce420df85eaed"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:16 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Make svc_recv transport neutral\n\nAll of the transport field and functions used by svc_recv are now\ntransport independent. Change the svc_recv function to use the svc_xprt\nstructure directly instead of the transport specific 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": "eab996d4aca7a9d8621d2b98c00ce420df85eaed",
      "tree": "beee1815aebbb5e31628d939cd08330cf3417c3f",
      "parents": [
        "9dbc240f199c16c3c0859c255ad52a663d8ee51d"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:14 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Make svc_sock_release svc_xprt_release\n\nThe svc_sock_release function only touches transport independent fields.\nChange the function to manipulate svc_xprt directly instead of the transport\ndependent 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": "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": "6bc5ab1367e43e59671d3fd19e6b0d2e4c138323",
      "tree": "37b94ecc396a3e763677ad741c8b8b5f4fa36518",
      "parents": [
        "a6046f71f2b598af241e7496a8ead90f2979224b"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:08:03 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:12 2008 -0500"
      },
      "message": "svc: Move accept call to svc_xprt_received to common code\n\nNow that the svc_xprt_received function handles transports, the call\nto svc_xprt_received in the xpo_tcp_accept function can be moved to\ncommon code.\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": "f6150c3cab6e788afacb07470be3c6b4a722f1ed",
      "tree": "b770317b97975b5e3f12482d13873bd27cd2cb7e",
      "parents": [
        "7a90e8cc21ad80529b3a3371dc97acc8832cc592"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:57 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:11 2008 -0500"
      },
      "message": "svc: Make the enqueue service transport neutral and export it.\n\nThe svc_sock_enqueue function is now transport independent since all of\nthe fields it touches have been moved to the transport independent svc_xprt\nstructure. Change the function to use the svc_xprt structure directly\ninstead of the transport specific svc_sock structure.\n\nTransport specific data-ready handlers need to call this function, so\nexport it.\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": "f9f3cc4fae04c87c815a4b473fb577cf74ef27da",
      "tree": "906550a4f9db0bf79adea43b3b9ac1fbc2b2c4e6",
      "parents": [
        "44a6995b32eb9b021ee71b279edb84728c9f5160"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:40 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:09 2008 -0500"
      },
      "message": "svc: Move connection limit checking to its own function\n\nMove the code that poaches connections when the connection limit is hit\nto a subroutine to make the accept logic path easier to follow. Since this\nis in the new connection path, it should not be a performance issue.\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": "44a6995b32eb9b021ee71b279edb84728c9f5160",
      "tree": "fbe6492dc072aaf80cda94353e2bfce8738802e9",
      "parents": [
        "38a417cc993f4535548e47207f9894e7c27e05e4"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:38 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:09 2008 -0500"
      },
      "message": "svc: Remove unnecessary call to svc_sock_enqueue\n\nThe svc_tcp_accept function calls svc_sock_enqueue after setting the\nSK_CONN bit. This doesn\u0027t actually do anything because the SK_BUSY bit\nis still set. The call is unnecessary anyway because the generic code in\nsvc_recv calls svc_sock_received after calling the accept 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": "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": "d7979ae4a050a45b78af51832475001b68263d2a",
      "tree": "f76bf9dea36d03a1141824202015d26002000589",
      "parents": [
        "323bee32e9bef14c6dd943ecc8e8cd373a9c94d9"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:34 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:08 2008 -0500"
      },
      "message": "svc: Move close processing to a single place\n\nClose handling was duplicated in the UDP and TCP recvfrom\nmethods. This code has been moved to the transport independent\nsvc_recv 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": "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"
    },
    {
      "commit": "490231558e058547da4ffab6d8ce8e28771749cc",
      "tree": "aac2eef69dbd262a755ee1cafec34787faf5d2f0",
      "parents": [
        "9f29868b491beee706931e0cf875a60cb4688754"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:21 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 max payload value to the transport\n\nThe svc_max_payload function currently looks at the socket type\nto determine the max payload. Add a max payload value to svc_xprt_class\nso it can be returned directly.\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": "360d873864c8903a650b227758b49dd50e6ecc9f",
      "tree": "806631491e4848b194abd539293f124b366a49de",
      "parents": [
        "1d8206b97a09e7ff2fbef17d8d1ea008d764eeaa"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:17 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "svc: Make svc_sock the tcp/udp transport\n\nMake TCP and UDP svc_sock transports, and register them\nwith the svc transport core.\n\nA transport type (svc_sock) has an svc_xprt as its first member,\nand calls svc_xprt_init to initialize this field.\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": "1d8206b97a09e7ff2fbef17d8d1ea008d764eeaa",
      "tree": "0975483e82fab57c25fdbb19a9946985659a8ca2",
      "parents": [
        "cb5c7d668e1af269a9409721268f027b86abf29c"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Sun Dec 30 21:07:15 2007 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "svc: Add an svc transport class\n\nThe transport class (svc_xprt_class) represents a type of transport, e.g.\nudp, tcp, rdma.  A transport class has a unique name and a set of transport\noperations kept in the svc_xprt_ops structure.\n\nA transport class can be dynamically registered and unregisterd. The\nsvc_xprt_class represents the module that implements the transport\ntype and keeps reference counts on the module to avoid unloading while\nthere are active users.\n\nThe endpoint (svc_xprt) is a generic, transport independent endpoint that can\nbe used to send and receive data for an RPC service. It inherits it\u0027s\noperations from the transport class.\n\nA transport driver module registers and unregisters itself with svc sunrpc\nby calling svc_reg_xprt_class, and svc_unreg_xprt_class respectively.\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": "cb5c7d668e1af269a9409721268f027b86abf29c",
      "tree": "11900b9087aaa34d5a5cf360d8fdac0e54c8003e",
      "parents": [
        "54ca95eb362d6988a577965ffb77c08702adb890"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jan 14 16:05:07 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "svcrpc: ensure gss DESTROY tokens free contexts from cache\n\nIf we don\u0027t do this then we\u0027ll end up with a pointless unusable context\nsitting in the cache until the time the original context would have\nexpired.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b39c18fce003bb2d5a51a4734d8fdd2c81fa1a78",
      "tree": "c89bd8e3e0af4cd11373ee317400f741010bc111",
      "parents": [
        "16141c0288f6a6ce2de51a1c39cc3407c841a535"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Jan 06 21:32:37 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "sunrpc: gss: simplify rsi_parse logic\n\nMake an obvious simplification that removes a few lines and some\nunnecessary indentation; no change in behavior.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "980e5a40a44400edc3f75b7931b8e75fcc3c21a3",
      "tree": "6edcef9f67ba32d817da97f500a2374e19734bd6",
      "parents": [
        "5c002b3bb294a637312cab7ad92a0deafa05a758"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Dec 12 18:21:17 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:07 2008 -0500"
      },
      "message": "nfsd: fix rsi_cache reference count leak\n\nFor some reason we haven\u0027t been put()\u0027ing the reference count here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dbf847ecb6318d3a22c6758fe39696d00f39063a",
      "tree": "2b71e776ca98bc94258f3539bd7f0ea53d2733a8",
      "parents": [
        "ffe9386b6e08e7132cb7730025d0ea310e08a182"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 08 17:20:34 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:05 2008 -0500"
      },
      "message": "knfsd: allow cache_register to return error on failure\n\nNewer server features such as nfsv4 and gss depend on proc to work, so a\nfailure to initialize the proc files they need should be treated as\nfatal.\n\nThanks to Andrew Morton for style fix and compile fix in case where\nCONFIG_NFSD_V4 is undefined.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ffe9386b6e08e7132cb7730025d0ea310e08a182",
      "tree": "9189fca685067e105c4fbaf9f22d568e16639080",
      "parents": [
        "e331f606a85a2a9e84e9c63c94d43c0517136139"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 12 17:04:29 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:04 2008 -0500"
      },
      "message": "nfsd: move cache proc (un)registration to separate function\n\nJust some minor cleanup.\n\nAlso I don\u0027t see much point in trying to register further proc entries\nif initial entries fail; so just stop trying in that case.\n\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "df95a9d4fb91d819d3fb55dd437056df59e7f15e",
      "tree": "9c35b2617a202c029803791c19d55a0483d9d225",
      "parents": [
        "d5c3428b2cb26d605fddc4878f4fcc03c23df89f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 08 16:09:59 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:04 2008 -0500"
      },
      "message": "knfsd: cache unregistration needn\u0027t return error\n\nThere\u0027s really nothing much the caller can do if cache unregistration\nfails.  And indeed, all any caller does in this case is print an error\nand continue.  So just return void and move the printk\u0027s inside\ncache_unregister.\n\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a490c681cbcf65d548138c377bb691c85824d323",
      "tree": "c95c06f827f3e8c0738c285556cc4919afbd0571",
      "parents": [
        "48b4ba3fdd7af319e90ade395162430934ee7b87"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Nov 06 14:15:19 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:03 2008 -0500"
      },
      "message": "knfsd: fix cache.c comment\n\nThe path here must be left over from some earlier draft; fix it.  And do\nsome more minor cleanup while we\u0027re there.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e5cff482c78a35b9f149a06aa777a1bd693864fb",
      "tree": "2b60e05b09f78f82b2c90b1877f175769d55b45c",
      "parents": [
        "01b2969a8528b926f5e4d98161ae37053234475c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Nov 01 16:56:47 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:02 2008 -0500"
      },
      "message": "SUNRPC: Use unsigned string lengths in xdr_decode_string_inplace\n\nXDR strings, opaques, and net objects should all use unsigned lengths.\nTo wit, RFC 4506 says:\n\n4.2.  Unsigned Integer\n\n   An XDR unsigned integer is a 32-bit datum that encodes a non-negative\n   integer in the range [0,4294967295].\n\n ...\n\n4.11.  String\n\n   The standard defines a string of n (numbered 0 through n-1) ASCII\n   bytes to be the number n encoded as an unsigned integer (as described\n   above), and followed by the n bytes of the string.\n\nAfter this patch, xdr_decode_string_inplace now matches the other XDR\nstring and array helpers that take a string length argument.  See:\n\nxdr_encode_opaque_fixed, xdr_encode_opaque, xdr_encode_array\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "01b2969a8528b926f5e4d98161ae37053234475c",
      "tree": "942fbf141743721476a3d79aa7b920ab9e72910f",
      "parents": [
        "d4395e03fec0895d01451904b8a2276ceda663c9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:31:20 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:02 2008 -0500"
      },
      "message": "SUNRPC: Prevent length underflow in read_flush()\n\nMake sure we compare an unsigned length to an unsigned count in\nread_flush().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7759db82774802885f96c250b36c3dfe317e62ff",
      "tree": "d99ff983d202bc7d8c14ef6208a0ab7171d9f979",
      "parents": [
        "320f1b1ed28c601cc152053a2f428a126cb608bc"
      ],
      "author": {
        "name": "Klaus Heinrich Kiwi",
        "email": "klausk@br.ibm.com",
        "time": "Wed Jan 23 22:57:45 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 01 14:25:10 2008 -0500"
      },
      "message": "[AUDIT] Add uid, gid fields to ANOM_PROMISCUOUS message\n\nChanges the ANOM_PROMISCUOUS message to include uid and gid fields,\nmaking it consistent with other AUDIT_ANOM_ messages and in the\nformat the userspace is expecting.\n\nSigned-off-by: Klaus Heinrich Kiwi \u003cklausk@br.ibm.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4746ec5b01ed07205a91e4f7ed9de9d70f371407",
      "tree": "7a3a836b6178ccab24801e90b69c1159b2c23099",
      "parents": [
        "c2a7780efe37d01bdb3facc85a94663e6d67d4a8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 08 10:06:53 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 01 14:06:51 2008 -0500"
      },
      "message": "[AUDIT] add session id to audit messages\n\nIn order to correlate audit records to an individual login add a session\nid.  This is incremented every time a user logs in and is included in\nalmost all messages which currently output the auid.  The field is\nlabeled ses\u003d  or oses\u003d\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "0c11b9428f619ab377c92eff2f160a834a6585dd",
      "tree": "35b573715ad5730a77d067486838345132771a7a",
      "parents": [
        "24e1c13c93cbdd05e4b7ea921c0050b036555adc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 10 04:20:52 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 01 14:04:59 2008 -0500"
      },
      "message": "[PATCH] switch audit_get_loginuid() to task_struct *\n\nall callers pass something-\u003eaudit_context\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4814bdbd590e835ecec2d5e505165ec1c19796b2",
      "tree": "b53996e694125012b202ea35a46fdf3cb39ae1df",
      "parents": [
        "7462bd744e8882f9ebb9220d46fd4fec8b35b082"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 31 18:50:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:41 2008 -0800"
      },
      "message": "[NETNS]: Lookup in FIB semantic hashes taking into account the namespace.\n\nThe namespace is not available in the fib_sync_down_addr, add it as a\nparameter.\n\nLooking up a device by the pointer to it is OK. Looking up using a\nresult from fib_trie/fib_hash table lookup is also safe. No need to\nfix that at all.  So, just fix lookup by address and insertion to the\nhash table path.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7462bd744e8882f9ebb9220d46fd4fec8b35b082",
      "tree": "25c5ba54034199e6a8e3d123c5e8e79f88f7c394",
      "parents": [
        "85326fa54b5516d8859617cc5fdfce8ae19c1480"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 31 18:49:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:40 2008 -0800"
      },
      "message": "[NETNS]: Add a namespace mark to fib_info.\n\nThis is required to make fib_info lookups namespace aware. In the\nother case initial namespace devices are marked as dead in the local\nrouting table during other namespace stop.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "85326fa54b5516d8859617cc5fdfce8ae19c1480",
      "tree": "82129844e755914183bc262b250301d06b7db398",
      "parents": [
        "4b8aa9abee2e108b132dea7a7c4e81a167895354"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 31 18:48:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:39 2008 -0800"
      },
      "message": "[IPV4]: fib_sync_down rework.\n\nfib_sync_down can be called with an address and with a device. In\nreality it is called either with address OR with a device. The\ncodepath inside is completely different, so lets separate it into two\ncalls for these two cases.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b8aa9abee2e108b132dea7a7c4e81a167895354",
      "tree": "892d1380ae4a6566932903ddc6c167fc7ecefc7d",
      "parents": [
        "7b2185747c32260a3e43b94812e96d22a8725f09"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 31 18:47:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:39 2008 -0800"
      },
      "message": "[NETNS]: Process interface address manipulation routines in the namespace.\n\nThe namespace is available when required except rtm_to_ifaddr. Add\nnamespace argument to it.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b2185747c32260a3e43b94812e96d22a8725f09",
      "tree": "942b0af12bab516a627075fcd0b2e2cf4d34711b",
      "parents": [
        "dce5cbeec32eb5db4d406b732b1256c6f702bde5"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 31 18:47:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:38 2008 -0800"
      },
      "message": "[IPV4]: Small style cleanup of the error path in rtm_to_ifaddr.\n\nRemove error code assignment inside brackets on failure. The code\nlooks better if the error is assigned before condition check. Also,\nthe compiler treats this better.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dce5cbeec32eb5db4d406b732b1256c6f702bde5",
      "tree": "38c9fe8ba24567d7914b949059a896f683aa6e29",
      "parents": [
        "3ed5df445eddce6f37767df3ebe8b27b614c7d98"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 31 18:44:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:37 2008 -0800"
      },
      "message": "[IPV4]: Fix memory leak on error path during FIB initialization.\n\nnet-\u003eipv4.fib_table_hash is not freed when fib4_rules_init failed.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ed5df445eddce6f37767df3ebe8b27b614c7d98",
      "tree": "2fcc1304b85550c432d8666480843b65edc7a3f5",
      "parents": [
        "e5dfb815181fcb186d6080ac3a091eadff2d98fe"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 18:42:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:36 2008 -0800"
      },
      "message": "[NETFILTER]: Ipv6-related xt_hashlimit compilation fix.\n\nThe hashlimit_ipv6_mask() is called from under IP6_NF_IPTABLES config\noption, but is not under it by itself.\n\ngcc warns us about it :) :\nnet/netfilter/xt_hashlimit.c:473: warning: \"hashlimit_ipv6_mask\" defined but not used\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
      "tree": "25ec6cc5b3c75536dc45a14089ca14fc8bd67938",
      "parents": [
        "94de78d19580143c407ff2492edf2410d0e7d48c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:37:42 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:36 2008 -0800"
      },
      "message": "[NET_SCHED]: Add flow classifier\n\nAdd new \"flow\" classifier, which is meant to extend the SFQ hashing\ncapabilities without hard-coding new hash functions and also allows\ndeterministic mappings of keys to classes, replacing some out of tree\niptables patches like IPCLASSIFY (maps IPs to classes), IPMARK (maps\nIPs to marks, with fw filters to classes), ...\n\nSome examples:\n\n- Classic SFQ hash:\n\n  tc filter add ... flow hash \\\n  \tkeys src,dst,proto,proto-src,proto-dst divisor 1024\n\n- Classic SFQ hash, but using information from conntrack to work properly in\n  combination with NAT:\n\n  tc filter add ... flow hash \\\n  \tkeys nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024\n\n- Map destination IPs of 192.168.0.0/24 to classids 1-257:\n\n  tc filter add ... flow map \\\n  \tkey dst addend -192.168.0.0 divisor 256\n\n- alternatively:\n\n  tc filter add ... flow map \\\n  \tkey dst and 0xff\n\n- similar, but reverse ordered:\n\n  tc filter add ... flow map \\\n  \tkey dst and 0xff xor 0xff\n\nPerturbation is currently not supported because we can\u0027t reliable kill the\ntimer on destruction.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94de78d19580143c407ff2492edf2410d0e7d48c",
      "tree": "2753a5638e500101ec286fd5a02f042b4a1da129",
      "parents": [
        "7d2681a6ff4f9ab5e48d02550b4c6338f1638998"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:37:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:35 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_sfq: make internal queues visible as classes\n\nAdd support for dumping statistics and make internal queues visible as\nclasses.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d2681a6ff4f9ab5e48d02550b4c6338f1638998",
      "tree": "3db57231f8153682da5136081d091bdec3cf3985",
      "parents": [
        "5239008b0de2507a531440b8c3019fb9c116fb1a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:36:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:34 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_sfq: add support for external classifiers\n\nAdd support for external classifiers to allow using different flow\nhash functions similar to ESFQ. When no classifier is attached the\nbuilt-in hash is used as before.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5239008b0de2507a531440b8c3019fb9c116fb1a",
      "tree": "49f4580d2a0178182017b4a07640ac8d0f1c4112",
      "parents": [
        "5396c9356efec1d3d818b786f69e081aaad4b98b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:36:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:34 2008 -0800"
      },
      "message": "[NET_SCHED]: Constify struct tcf_ext_map\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5396c9356efec1d3d818b786f69e081aaad4b98b",
      "tree": "e336503379e46e6e0f43795baf1ed91444ad69d5",
      "parents": [
        "30a50cc56679f56d7b866b1c29fd05802606fc5a"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Thu Jan 31 18:33:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:33 2008 -0800"
      },
      "message": "[BLUETOOTH]: Fix bugs in previous conn add/del workqueue changes.\n\nJens Axboe noticed that we were queueing \u0026conn-\u003ework on both btaddconn\nand keventd_wq.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30a50cc56679f56d7b866b1c29fd05802606fc5a",
      "tree": "36ea4df077c1bc09b0ed646d2b24a7c7ad3a8b90",
      "parents": [
        "0027ba843450a5e28dd7fed580ad1e1546b7696b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Jan 31 17:18:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:32 2008 -0800"
      },
      "message": "[TCP]: Unexport sysctl_tcp_tso_win_divisor\n\nThis patch removes the no longer used\nEXPORT_SYMBOL(sysctl_tcp_tso_win_divisor).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0027ba843450a5e28dd7fed580ad1e1546b7696b",
      "tree": "94546bf994ef1b187ddce1a92c122866af2ab675",
      "parents": [
        "81a21eb4ec4ad47a776a8ab89309fb2614e63ae5"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Jan 31 17:17:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:31 2008 -0800"
      },
      "message": "[IPV4]: Make struct ipv4_devconf static.\n\nstruct ipv4_devconf can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81a21eb4ec4ad47a776a8ab89309fb2614e63ae5",
      "tree": "c64181c96c16cd630474ecae4ce17940c882fe51",
      "parents": [
        "9472c9ef645d03ea823801d7716e658aeaf894e4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Jan 31 17:16:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:31 2008 -0800"
      },
      "message": "[TR] net/802/tr.c: sysctl_tr_rif_timeout static\n\nsysctl_tr_rif_timeout can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9472c9ef645d03ea823801d7716e658aeaf894e4",
      "tree": "349327bc0ea264312a2d753840e7c32590e4f6c8",
      "parents": [
        "5255dc6e14ce640ccb3e062362510a00ac59bbcd"
      ],
      "author": {
        "name": "Masahide NAKAMURA",
        "email": "nakam@linux-ipv6.org",
        "time": "Thu Jan 31 17:14:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:30 2008 -0800"
      },
      "message": "[XFRM]: Fix statistics.\n\no Outbound sequence number overflow error status\n  is counted as XfrmOutStateSeqError.\no Additionaly, it changes inbound sequence number replay\n  error name from XfrmInSeqOutOfWindow to XfrmInStateSeqError\n  to apply name scheme above.\no Inbound IPv4 UDP encapsuling type mismatch error is wrongly\n  mapped to XfrmInStateInvalid then this patch fiex the error\n  to XfrmInStateMismatch.\n\nSigned-off-by: Masahide NAKAMURA \u003cnakam@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5255dc6e14ce640ccb3e062362510a00ac59bbcd",
      "tree": "fe8799b5c48dcb2a39629f103e3053fffc113026",
      "parents": [
        "cc8fd14dcaad61be74cbd5879f27a76f91473a3f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Jan 31 17:10:30 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:29 2008 -0800"
      },
      "message": "[XFRM]: Remove unused exports.\n\nThis patch removes the following no longer used EXPORT_SYMBOL\u0027s:\n- xfrm_input.c: xfrm_parse_spi\n- xfrm_state.c: xfrm_replay_check\n- xfrm_state.c: xfrm_replay_advance\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc8fd14dcaad61be74cbd5879f27a76f91473a3f",
      "tree": "6486b03dd24c3536e2c2c12b518cd4349439fdd0",
      "parents": [
        "c26736ec171760a41307d775bbf05983ea45ea9e"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "12o3l@tiscali.nl",
        "time": "Thu Jan 31 17:08:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:29 2008 -0800"
      },
      "message": "[PKT_SCHED] sch_teql.c: Duplicate IFF_BROADCAST in FMASK, remove 2nd.\n\nSigned-off-by: Roel Kluin \u003c12o3l@tiscali.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "29e75252da20f3ab9e132c68c9aed156b87beae6",
      "tree": "affd152c959eede937b50f6054a303a388a88545",
      "parents": [
        "174ce0483198b9dffd712fdd7d53635954fddffe"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Jan 31 17:05:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:27 2008 -0800"
      },
      "message": "[IPV4] route cache: Introduce rt_genid for smooth cache invalidation\n\nCurrent ip route cache implementation is not suited to large caches.\n\nWe can consume a lot of CPU when cache must be invalidated, since we\ncurrently need to evict all cache entries, and this eviction is\nsometimes asynchronous. min_delay \u0026 max_delay can somewhat control this\nasynchronism behavior, but whole thing is a kludge, regularly triggering\ninfamous soft lockup messages. When entries are still in use, this also\nconsumes a lot of ram, filling dst_garbage.list.\n\nA better scheme is to use a generation identifier on each entry,\nso that cache invalidation can be performed by changing the table\nidentifier, without having to scan all entries.\nNo more delayed flushing, no more stalling when secret_interval expires.\n\nInvalidated entries will then be freed at GC time (controled by\nip_rt_gc_timeout or stress), or when an invalidated entry is found\nin a chain when an insert is done.\nThus we keep a normal equilibrium.\n\nThis patch :\n- renames rt_hash_rnd to rt_genid (and makes it an atomic_t)\n- Adds a new rt_genid field to \u0027struct rtable\u0027 (filling a hole on 64bit)\n- Checks entry-\u003ert_genid at appropriate places :\n"
    },
    {
      "commit": "174ce0483198b9dffd712fdd7d53635954fddffe",
      "tree": "d7b3b6409ddb0ea6a9b15e93f883f2334040c08a",
      "parents": [
        "72eb7bd2693d83e161442b709b107dd77c77b4f2"
      ],
      "author": {
        "name": "Jesse Brandeburg",
        "email": "jesse.brandeburg@intel.com",
        "time": "Thu Jan 31 16:59:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:26 2008 -0800"
      },
      "message": "[PKTGEN]: pktgen should not print info that it is spinning\n\nwhen using pktgen to send delay packets the module prints repeatedly\nto the kernel log:\n\nsleeping for X\nsleeping for X\n...\n\nThis is probably just a debugging item left in and should not be\nenabled for regular use of the module.\n\nSigned-off-by: Jesse Brandeburg \u003cjesse.brandeburg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72eb7bd2693d83e161442b709b107dd77c77b4f2",
      "tree": "d823cbbf98ed196f280a230fd3cb0268fd65a5a0",
      "parents": [
        "52913246e0056c9c6215a778a3b31b6b9ce5c3ef"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 16:57:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:25 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove netfilter support\n\nSince the old policer code is gone, TC actions are needed for policing.\nThe ingress qdisc can get packets directly from netif_receive_skb()\nin case TC actions are enabled or through netfilter otherwise, but\nsince without TC actions there is no policer the only thing it actually\ndoes is count packets.\n\nRemove the netfilter support and always require TC actions.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e83a2ea850bf0c0c81c675444080970fc07798c6",
      "tree": "ebdf251be6fa2f9b2b482cd0e6393fdbfc8278a0",
      "parents": [
        "16ca3f913001efdb6171a2781ef41c77474e3895"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Thu Jan 31 16:53:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:24 2008 -0800"
      },
      "message": "[VLAN]: set_rx_mode support for unicast address list\n\nReuse the existing logic for multicast list synchronization for the\nunicast address list. The core of dev_mc_sync/unsync are split out as\n__dev_addr_sync/unsync and moved from dev_mcast.c to dev.c.  These are\nthen used to implement dev_unicast_sync/unsync as well.\n\nI\u0027m working on cleaning up Intel\u0027s FCoE stack, which generates new MAC\naddresses from the fibre channel device id assigned by the fabric as\nper the current draft specification in T11.  When using such a\nprotocol in a VLAN environment it would be nice to not always be\nforced into promiscuous mode, assuming the underlying Ethernet driver\nsupports multiple unicast addresses as well.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "16ca3f913001efdb6171a2781ef41c77474e3895",
      "tree": "5e679d3bdf9ce714895b47d1d4ecfb2d08f68c79",
      "parents": [
        "71d67e666e73e3b7e9ef124745ee2e454ac04be8"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Thu Jan 31 16:47:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:23 2008 -0800"
      },
      "message": "[TCP]: Fix a bug in strategy_allowed_congestion_control\n\nIn strategy_allowed_congestion_control of the 2.6.24 kernel, when\nsysctl_string return 1 on success,it should call\ntcp_set_allowed_congestion_control to set the allowed congestion\ncontrol.But, it don\u0027t.  the sysctl_string return 1 on success,\notherwise return negative, never return 0.The patch fix the problem.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "71d67e666e73e3b7e9ef124745ee2e454ac04be8",
      "tree": "e163b578c98f3c3ac69cb88ca6bf936d6ab4d698",
      "parents": [
        "9fe7c712fc955565c32e2f899d4ffeceaf028398"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Jan 31 16:45:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:23 2008 -0800"
      },
      "message": "[IPV4] fib_trie: rescan if key is lost during dump\n\nNormally during a dump the key of the last dumped entry is used for\ncontinuation, but since lock is dropped it might be lost. In that case\nfallback to the old counter based N^2 behaviour.  This means the dump\nwill end up skipping some routes which matches what FIB_HASH does.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9fe7c712fc955565c32e2f899d4ffeceaf028398",
      "tree": "da2854388f4550fd32eac920c759ca5e67e72bdd",
      "parents": [
        "23717795bee15470b96f9b7aa5ecf4efe14c8e32"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Thu Jan 31 16:42:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:22 2008 -0800"
      },
      "message": "[PKTGEN]: Remove an unused definition in pktgen.c.\n\n- Remove an unused definition (LAT_BUCKETS_MAX) in net/core/pktgen.c.\n- Remove the corresponding comment.\n- The LAT_BUCKETS_MAX seems to have to do with a patch from a long\ntime ago which was not applied (Ben Greear), which dealt with latency\ncounters.\n\nSee, for example : http://oss.sgi.com/archives/netdev/2002-09/msg00184.html\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "23717795bee15470b96f9b7aa5ecf4efe14c8e32",
      "tree": "5c9f3d3fc0ef0cddd1af52737128185d90dda9ba",
      "parents": [
        "fa4d3c6210380c55cf7f295d28fd981fbcbb828c"
      ],
      "author": {
        "name": "Jim Paris",
        "email": "jim@jtan.com",
        "time": "Thu Jan 31 16:36:25 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:21 2008 -0800"
      },
      "message": "[IPV6]: Update MSS even if MTU is unchanged.\n\nThis is needed because in ndisc.c, we have:\n\n  static void ndisc_router_discovery(struct sk_buff *skb)\n  {\n  // ...\n  \tif (ndopts.nd_opts_mtu) {\n  // ...\n  \t\t\tif (rt)\n  \t\t\t\trt-\u003eu.dst.metrics[RTAX_MTU-1] \u003d mtu;\n\n  \t\t\trt6_mtu_change(skb-\u003edev, mtu);\n  // ...\n  }\n\nSince the mtu is set directly here, rt6_mtu_change_route thinks that\nit is unchanged, and so it fails to update the MSS accordingly.  This\npatch lets rt6_mtu_change_route still update MSS if old_mtu \u003d\u003d new_mtu.\n\nSigned-off-by: Jim Paris \u003cjim@jtan.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fa4d3c6210380c55cf7f295d28fd981fbcbb828c",
      "tree": "0161c8574349adb4eb93b2996dacf70b472696ac",
      "parents": [
        "d86e0dac2ce412715181f792aa0749fe3effff11"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:07:57 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:21 2008 -0800"
      },
      "message": "[NETNS]: Udp sockets per-net lookup.\n\nAdd the net parameter to udp_get_port family of calls and\nudp_lookup one and use it to filter sockets.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d86e0dac2ce412715181f792aa0749fe3effff11",
      "tree": "bc9197a7316c7d7641112d5f5975d8b91afdbd08",
      "parents": [
        "c67499c0e772064b37ad75eb69b28fc218752636"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:07:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:20 2008 -0800"
      },
      "message": "[NETNS]: Tcp-v6 sockets per-net lookup.\n\nAdd a net argument to inet6_lookup and propagate it further.\nActually, this is tcp-v6 implementation of what was done for\ntcp-v4 sockets in a previous patch.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c67499c0e772064b37ad75eb69b28fc218752636",
      "tree": "7d2873308f16080c0c3801d6024881360dd8e196",
      "parents": [
        "941b1d22cc035ad58b3d9b44a1c74efac2d7e499"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:06:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:19 2008 -0800"
      },
      "message": "[NETNS]: Tcp-v4 sockets per-net lookup.\n\nAdd a net argument to inet_lookup and propagate it further\ninto lookup calls. Plus tune the __inet_check_established.\n\nThe dccp and inet_diag, which use that lookup functions\npass the init_net into them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "941b1d22cc035ad58b3d9b44a1c74efac2d7e499",
      "tree": "9b50211c27a209c02d97b73f74bf33cc87f4c9c3",
      "parents": [
        "5ee31fc1ecdcbc234c8c56dcacef87c8e09909d8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:05:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:18 2008 -0800"
      },
      "message": "[NETNS]: Make bind buckets live in net namespaces.\n\nThis tags the inet_bind_bucket struct with net pointer,\ninitializes it during creation and makes a filtering\nduring lookup.\n\nA better hashfn, that takes the net into account is to\nbe done in the future, but currently all bind buckets\nwith similar port will be in one hash chain.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ee31fc1ecdcbc234c8c56dcacef87c8e09909d8",
      "tree": "5fe73acbcf784f9ee326d7d10ae217c7b4eb13ee",
      "parents": [
        "535174efbe0f0454f0595c31b823498c197eeb4f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:04:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:17 2008 -0800"
      },
      "message": "[INET]: Consolidate inet(6)_hash_connect.\n\nThese two functions are the same except for what they call\nto \"check_established\" and \"hash\" for a socket.\n\nThis saves half-a-kilo for ipv4 and ipv6.\n\n add/remove: 1/0 grow/shrink: 1/4 up/down: 582/-1128 (-546)\n function                                     old     new   delta\n __inet_hash_connect                            -     577    +577\n arp_ignore                                   108     113      +5\n static.hint                                    8       4      -4\n rt_worker_func                               376     372      -4\n inet6_hash_connect                           584      25    -559\n inet_hash_connect                            586      25    -561\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "535174efbe0f0454f0595c31b823498c197eeb4f",
      "tree": "7fc438f82e73f117882e31b6f7025e295e399b09",
      "parents": [
        "22e0e62cd09dcf56fe1a7be66698b6e130e4314c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:03:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:17 2008 -0800"
      },
      "message": "[IPV6]: Introduce the INET6_TW_MATCH macro.\n\nWe have INET_MATCH, INET_TW_MATCH and INET6_MATCH to test sockets and\ntwbuckets for matching, but ipv6 twbuckets are tested manually.\n\nHere\u0027s the INET6_TW_MATCH to help with it.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "22e0e62cd09dcf56fe1a7be66698b6e130e4314c",
      "tree": "9cfc2679c256740d5e6a8d491a1eb96cf8cb96bc",
      "parents": [
        "969d71089f9b26f7ca4721c8c6559e50d81438f5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 04:55:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:16 2008 -0800"
      },
      "message": "[NETFILTER]: xt_iprange: fix sparse warnings\n\n  CHECK   net/netfilter/xt_iprange.c\nnet/netfilter/xt_iprange.c:104:19: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:37: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:19: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:37: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:19: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:37: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:19: warning: restricted degrades to integer\nnet/netfilter/xt_iprange.c:104:37: warning: restricted degrades to integer\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "969d71089f9b26f7ca4721c8c6559e50d81438f5",
      "tree": "7cd1b170f67a133612890c582890a2d52a4ec90c",
      "parents": [
        "9e232495de8a1d0aa861d9a70b756315c05958f2"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 04:55:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:15 2008 -0800"
      },
      "message": "[NETFILTER]: nf_nat: fix sparse warning\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e232495de8a1d0aa861d9a70b756315c05958f2",
      "tree": "786ed1172c76a75a69a4f6418cd3b3c79ecb86b7",
      "parents": [
        "c392a7401807de25a9c7e0234dddbdf40b10c594"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 04:54:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:15 2008 -0800"
      },
      "message": "[NETFILTER]: nf_conntrack: fix sparse warning\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c392a7401807de25a9c7e0234dddbdf40b10c594",
      "tree": "57940df8f7c31574d1988f2a682fa6755b8e10a4",
      "parents": [
        "32948588ac4ec54300bae1037e839277fd4536e2"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 04:54:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:14 2008 -0800"
      },
      "message": "[NETFILTER]: {ip,ip6}_queue: fix build error\n\nReported by Ingo Molnar:\n\n net/built-in.o: In function `ip_queue_init\u0027:\n ip_queue.c:(.init.text+0x322c): undefined reference to `net_ipv4_ctl_path\u0027\n\nFix the build error and also handle CONFIG_PROC_FS\u003dn properly.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32948588ac4ec54300bae1037e839277fd4536e2",
      "tree": "69836aa043bcd3b5207047558bbbd4866f97dc36",
      "parents": [
        "7cc3864d39837549c5ccb33c5b85183d6e6986bc"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Thu Jan 31 04:53:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:13 2008 -0800"
      },
      "message": "[NETFILTER]: nf_conntrack: annotate l3protos with const\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7cc3864d39837549c5ccb33c5b85183d6e6986bc",
      "tree": "6eea6059e6e133f82e8998664af789ab50ee7d39",
      "parents": [
        "dc35dc5a4c8e7752c82643ff2ad442685331ab28"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Thu Jan 31 04:53:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:12 2008 -0800"
      },
      "message": "[NETFILTER]: nf_{conntrack,nat}_icmp: constify and annotate\n\nConstify a few data tables use const qualifiers on variables where\npossible in the nf_conntrack_icmp* sources.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc35dc5a4c8e7752c82643ff2ad442685331ab28",
      "tree": "e011d890c3110eccc0e041e6be46622d1171bca8",
      "parents": [
        "da3f13c95a4c6e275a9b568f358c0c120ad83ecb"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Thu Jan 31 04:52:46 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:12 2008 -0800"
      },
      "message": "[NETFILTER]: nf_{conntrack,nat}_proto_gre: annotate with const\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "da3f13c95a4c6e275a9b568f358c0c120ad83ecb"
}
