)]}'
{
  "log": [
    {
      "commit": "b4528762ca92261c6ed3f03e76adeb1dc587aacb",
      "tree": "461eebfce2935cefb7a07a7ee55e12c7d0959c5d",
      "parents": [
        "1d2e88e73ee0af52b0ed63b5fb8f42a919a4d9de"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 11 12:18:51 2008 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun May 18 14:18:27 2008 -0400"
      },
      "message": "SUNRPC: AUTH_SYS \"machine creds\" shouldn\u0027t use negative valued uid/gid\n\nApparently this causes Solaris 10 servers to refuse our NFSv4 SETCLIENTID\ncalls. Fall back to root creds for now, since most servers that care are\nvery likely to have root squashing enabled.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "625fc3a37511cbecfe1253867fe105c28d6a95f0",
      "tree": "9bf45b7e4251d1a0a3a4d1b7e4ca4c50d16cf106",
      "parents": [
        "19566ca6dc26600bae4b75701d4dced8d8540f16"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Thu May 08 22:48:31 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:58:25 2008 -0700"
      },
      "message": "Remove duplicated include in net/sunrpc/svc.c\n\n\u003clinux/sched.h\u003e we included twice.\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7fe23363bab0488c7ce09626900e7d621ea2292",
      "tree": "c49c2f3915c5ce0e26b1f6342a3458a2ef4eddd4",
      "parents": [
        "fb65f180e02dde224af256b43d3ab2c28b9689d7"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Fri May 02 02:44:36 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 02 02:44:36 2008 -0700"
      },
      "message": "sunrpc: assign PDE-\u003edata before gluing PDE into /proc tree\n\nSimply replace proc_create and further data assigned with proc_create_data.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "77a50df2b14c8d3ee3c58c21c4a0e0157570df09",
      "tree": "0e324a712e5e768c8353b0b5ba6ddc31095479f0",
      "parents": [
        "96fffeb4b413a4f8f65bb627d59b7dfc97ea0b39",
        "358c12953b88c5a06a57c33eb27c753b2e7934d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 09:44:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 09:44:11 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  iwlwifi: Allow building iwl3945 without iwl4965.\n  wireless: Fix compile error with wifi \u0026 leds\n  tcp: Fix slab corruption with ipv6 and tcp6fuzz\n  ipv4/ipv6 compat: Fix SSM applications on 64bit kernels.\n  [IPSEC]: Use digest_null directly for auth\n  sunrpc: fix missing kernel-doc\n  can: Fix copy_from_user() results interpretation\n  Revert \"ipv6: Fix typo in net/ipv6/Kconfig\"\n  tipc: endianness annotations\n  ipv6: result of csum_fold() is already 16bit, no need to cast\n  [XFRM] AUDIT: Fix flowlabel text format ambibuity.\n"
    },
    {
      "commit": "0b80ae4201e5128e16e5161825f5cd377a5d1fee",
      "tree": "1d0d74621550e3a4f595946bb85896a6ea15a065",
      "parents": [
        "3f91bd420a955803421f2db17b2e04aacfbb2bb8"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Apr 26 22:59:02 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 27 14:26:52 2008 -0700"
      },
      "message": "sunrpc: fix missing kernel-doc\n\nFix missing sunrpc kernel-doc:\n\nWarning(linux-2.6.25-git7//net/sunrpc/xprt.c:451): No description found for parameter \u0027action\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "563307b2fa15d687abc54bd980b9847ebf0e3231",
      "tree": "7f16be30217a2e66360ede97aa27d07a4ebd7e55",
      "parents": [
        "10c993a6b5418cb1026775765ba4c70ffb70853d",
        "233607dbbc823caf685e778cabc49fb7f679900b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 24 11:46:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 24 11:46:16 2008 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (80 commits)\n  SUNRPC: Invalidate the RPCSEC_GSS session if the server dropped the request\n  make nfs_automount_list static\n  NFS: remove duplicate flags assignment from nfs_validate_mount_data\n  NFS - fix potential NULL pointer dereference v2\n  SUNRPC: Don\u0027t change the RPCSEC_GSS context on a credential that is in use\n  SUNRPC: Fix a race in gss_refresh_upcall()\n  SUNRPC: Don\u0027t disconnect more than once if retransmitting NFSv4 requests\n  SUNRPC: Remove the unused export of xprt_force_disconnect\n  SUNRPC: remove XS_SENDMSG_RETRY\n  SUNRPC: Protect creds against early garbage collection\n  NFSv4: Attempt to use machine credentials in SETCLIENTID calls\n  NFSv4: Reintroduce machine creds\n  NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n  nfs: fix printout of multiword bitfields\n  nfs: return negative error value from nfs{,4}_stat_to_errno\n  NLM/lockd: Ensure client locking calls use correct credentials\n  NFS: Remove the buggy lock-if-signalled case from do_setlk()\n  NLM/lockd: Fix a race when cancelling a blocking lock\n  NLM/lockd: Ensure that nlmclnt_cancel() returns results of the CANCEL call\n  NLM: Remove the signal masking in nlmclnt_proc/nlmclnt_cancel\n  ...\n"
    },
    {
      "commit": "233607dbbc823caf685e778cabc49fb7f679900b",
      "tree": "13840137ee10788061cbec60fcfe8ea4c274558e",
      "parents": [
        "3dc5063786b273f1aee545844f6bd4e9651ebffe",
        "b48633bd086d21f4a2a5bea96c7e6c7ba58eb60c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 14:01:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 14:01:02 2008 -0400"
      },
      "message": "Merge branch \u0027devel\u0027\n"
    },
    {
      "commit": "b48633bd086d21f4a2a5bea96c7e6c7ba58eb60c",
      "tree": "334f66cced8488e54cbd7c80ed56e81d6cc0ceb4",
      "parents": [
        "a3dab293539031b0970585b9b355cebbc91ecbd4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 22 16:47:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 24 13:53:46 2008 -0400"
      },
      "message": "SUNRPC: Invalidate the RPCSEC_GSS session if the server dropped the request\n\nRFC 2203 requires the server to drop the request if it believes the\nRPCSEC_GSS context is out of sequence. The problem is that we have no way\non the client to know why the server dropped the request. In order to avoid\nspinning forever trying to resend the request, the safe approach is\ntherefore to always invalidate the RPCSEC_GSS context on every major\ntimeout.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0dc220f0815497858db539d27947f3ec83202ace",
      "tree": "6aabb3947e45496fe78ed9a2500c2862274d2fc3",
      "parents": [
        "50c8bb13eaaf345caf2e7966667ba1d3e4d68af2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Apr 14 12:27:52 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "SUNRPC: Use unsigned loop and array index in svc_init_buffer()\n\nClean up: Suppress a harmless compiler warning.\n\nIndex rq_pages[] with an unsigned type.  Make \"pages\" unsigned as well,\nas it never represents a value less than zero.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "50c8bb13eaaf345caf2e7966667ba1d3e4d68af2",
      "tree": "b3bfef60963218d9c5ba4ece05561fcde20e7a77",
      "parents": [
        "c0401ea008fb7c785a93428752d69dccafb127ec"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Apr 14 12:27:45 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "SUNRPC: Use unsigned index when looping over arrays\n\nClean up: Suppress a harmless compiler warning in the RPC server related\nto array indices.\n\nARRAY_SIZE() returns a size_t, so use unsigned type for a loop index when\nlooping over arrays.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c0401ea008fb7c785a93428752d69dccafb127ec",
      "tree": "c24c8c6e8871ecba8906098c0360bf3980fedf73",
      "parents": [
        "b7872fe86db78cc96c85a13338ea6e3fe1aef610"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Apr 14 12:27:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "SUNRPC: Update RPC server\u0027s TCP record marker decoder\n\nClean up: Update the RPC server\u0027s TCP record marker decoder to match the\nconstructs used by the RPC client\u0027s TCP socket transport.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b7872fe86db78cc96c85a13338ea6e3fe1aef610",
      "tree": "2425138e8007ab93a8d46f6ab9c240a8214814a6",
      "parents": [
        "f97c650dda24e48405399aa0676e90da52408515"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Apr 14 12:27:01 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:43 2008 -0400"
      },
      "message": "SUNRPC: RPC server still uses 2.4 method for disabling TCP Nagle\n\nUse the 2.6 method for disabling TCP Nagle in the kernel\u0027s RPC server.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8774282c4cef82695ccca8bd09976de5d6e49610",
      "tree": "d5061bde10232534900729aedb3ee63a78183ae5",
      "parents": [
        "e1ba1ab76e68de9f4a93fae8406627924efaed99"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Apr 07 16:45:37 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:42 2008 -0400"
      },
      "message": "SUNRPC: remove svc_create_thread()\n\nNow that the nfs4 callback thread uses the kthread API, there are no\nmore users of svc_create_thread(). Remove it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4ab4b0bedda7d41c63cef98cd5d6cabada460936",
      "tree": "b86a8e45d260fa29a0fbf647c10b1f99ab14e18f",
      "parents": [
        "5743d65c2f77d5145fb4c4262c4dd70c3f078776"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Mon Mar 31 10:31:44 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:41 2008 -0400"
      },
      "message": "sunrpc: make token header values less confusing\n\ng_make_token_header() and g_token_size() add two too many, and\ntherefore their callers pass in \"(logical_value - 2)\" rather\nthan \"logical_value\" as hard-coded values which causes confusion.\n\nThis dates back to the original g_make_token_header which took an\noptional token type (token_id) value and added it to the token.\nThis was removed, but the routine always adds room for the token_id\nrather than not.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5743d65c2f77d5145fb4c4262c4dd70c3f078776",
      "tree": "aad96f19d1087e577aff8a88dd08c444c09f5068",
      "parents": [
        "1a448fdb3c5495405bc44d77ea676150f9195444"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Mon Mar 31 10:31:33 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:41 2008 -0400"
      },
      "message": "gss_krb5: consistently use unsigned for seqnum\n\nConsistently use unsigned (u32 vs. s32) for seqnum.\n\nIn get_mic function, send the local copy of seq_send,\nrather than the context version.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c3bb257d2d3a1a4e49372b9d74eaebe0fcf110dd",
      "tree": "3a351ef308ca165516d05a4c61e6b4532097d3c7",
      "parents": [
        "30aef3166ab27f7bcb14c5e809205af8126fa10b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 12 14:04:25 2008 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "net/sunrpc/svc.c: suppress unintialized var warning\n\nnet/sunrpc/svc.c: In function \u0027__svc_create_thread\u0027:\nnet/sunrpc/svc.c:587: warning: \u0027oldmask.bits[0u]\u0027 may be used uninitialized in this function\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "30aef3166ab27f7bcb14c5e809205af8126fa10b",
      "tree": "0c42969032c9ec9a2a0c71406a0eed7b174b43b7",
      "parents": [
        "3d4a6886786f839976c36e62303507692bf87d8d"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Thu Feb 21 13:44:27 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "Remove define for KRB5_CKSUM_LENGTH, which will become enctype-dependent\n\ncleanup: When adding new encryption types, the checksum length\ncan be different for each enctype.  Face the fact that the\ncurrent code only supports DES which has a checksum length of 8.\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3d4a6886786f839976c36e62303507692bf87d8d",
      "tree": "631d9d10a782281978f8fe5fb77567ce36e3570d",
      "parents": [
        "830bb59b6ece51c36dd456b685d145c69d3b7e1c"
      ],
      "author": {
        "name": "Kevin Coffman",
        "email": "kwc@citi.umich.edu",
        "time": "Thu Feb 21 13:44:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "Correct grammer/typos in dprintks\n\ncleanup:  Fix grammer/typos to use \"too\" instead of \"to\"\n\nSigned-off-by: Kevin Coffman \u003ckwc@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "830bb59b6ece51c36dd456b685d145c69d3b7e1c",
      "tree": "3b8e2d7318875394b561d6ce9c3ff4e3828106c2",
      "parents": [
        "9167f501c6b53492eb2566dd618ce7f55f2856d5"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 11 12:44:27 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:40 2008 -0400"
      },
      "message": "SVCRDMA: Add check for XPT_CLOSE in svc_rdma_send\n\nSVCRDMA: Add check for XPT_CLOSE in svc_rdma_send\n\nThe svcrdma transport can crash if a send is waiting for an\nempty SQ slot and the connection is closed due to an asynchronous error.\nThe crash is caused when svc_rdma_send attempts to send on a deleted\nQP.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dd35210e1e2cb46d6dba5c97f1bc3784c4f97998",
      "tree": "f220067718db3bb3a263566eea30e9089a59c163",
      "parents": [
        "93245d11fcaccdebccabe86a2b92db524f82d8b4"
      ],
      "author": {
        "name": "Harshula Jayasuriya",
        "email": "harshula@sgi.com",
        "time": "Wed Feb 20 10:56:56 2008 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:39 2008 -0400"
      },
      "message": "sunrpc: GSS integrity and decryption failures should return GARBAGE_ARGS\n\nIn function svcauth_gss_accept() (net/sunrpc/auth_gss/svcauth_gss.c) the\ncode that handles GSS integrity and decryption failures should be\nreturning GARBAGE_ARGS as specified in RFC 2203, sections 5.3.3.4.2 and\n5.3.3.4.3.\n\nReviewed-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Harshula Jayasuriya \u003charshula@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7b54fe61ffd5bfa4e50d371a2415225aa0cbb38e",
      "tree": "6da4eb10c73ca75ff7cc94c11cfb11cd102447c4",
      "parents": [
        "6aaa67b5f3b9fe24f0c76d0415cc72e5a1137bea"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 12 11:47:24 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:38 2008 -0400"
      },
      "message": "SUNRPC: allow svc_recv to break out of 500ms sleep when alloc_page fails\n\nsvc_recv() calls alloc_page(), and if it fails it does a 500ms\nuninterruptible sleep and then reattempts. There doesn\u0027t seem to be any\nreal reason for this to be uninterruptible, so change it to an\ninterruptible sleep. Also check for kthread_stop() and signalled() after\nsetting the task state to avoid races that might lead to sleeping after\nkthread_stop() wakes up the task.\n\nI\u0027ve done some very basic smoke testing with this, but obviously it\u0027s\nhard to test the actual changes since this all depends on an\nalloc_page() call failing.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "67eb6ff610d50da231a37beb634d6dea4b5025ab",
      "tree": "5a14b4e8ca8ed716f541bb681d5fdc0f0b07f767",
      "parents": [
        "6a85fa3adddd3a74bd5b94c4b72668d307b88377"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jan 31 16:14:54 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:37 2008 -0400"
      },
      "message": "svcrpc: move unused field from cache_deferred_req\n\nThis field is set once and never used; probably some artifact of an\nearlier implementation idea.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f15364bd4cf8799a7677b6daeed7b67d9139d974",
      "tree": "bef48016533d184ea171d4b64336a5ad65ebc18e",
      "parents": [
        "d751a7cd0695554498f25d3026ca6710dbb3698f"
      ],
      "author": {
        "name": "Aurélien Charbon",
        "email": "aurelien.charbon@ext.bull.net",
        "time": "Fri Jan 18 15:50:56 2008 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:36 2008 -0400"
      },
      "message": "IPv6 support for NFS server export caches\n\nThis adds IPv6 support to the interfaces that are used to express nfsd\nexports.  All addressed are stored internally as IPv6; backwards\ncompatibility is maintained using mapped addresses.\n\nThanks to Bruce Fields, Brian Haley, Neil Brown and Hideaki Joshifuji\nfor comments\n\nSigned-off-by: Aurelien Charbon \u003caurelien.charbon@bull.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Brian Haley \u003cbrian.haley@hp.com\u003e\nCc:  YOSHIFUJI Hideaki / 吉藤英明 \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7086721f9c8b59331e164e534f588e075cfd9d3f",
      "tree": "593ddc28b30dba189069579b82ed81996d965df2",
      "parents": [
        "23d42ee278de1552d67daef5774ba59ff30925db"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Feb 07 16:34:54 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:36 2008 -0400"
      },
      "message": "SUNRPC: have svc_recv() check kthread_should_stop()\n\nWhen using kthreads that call into svc_recv, we want to make sure that\nthey do not block there for a long time when we\u0027re trying to take down\nthe kthread.\n\nThis patch changes svc_recv() to check kthread_should_stop() at the same\nplaces that it checks to see if it\u0027s signalled(). Also check just before\nsvc_recv() tries to schedule(). By making sure that we check it just\nafter setting the task state we can avoid having to use any locking or\nsignalling to ensure it doesn\u0027t block for a long time.\n\nThere\u0027s still a chance of a 500ms sleep if alloc_page() fails, but\nthat should be a rare occurrence and isn\u0027t a terribly long time in\nthe context of a kthread being taken down.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "23d42ee278de1552d67daef5774ba59ff30925db",
      "tree": "9470458414cfaf370986283a4c388c9e652cf8f0",
      "parents": [
        "1447d25eb3a7bbe5bf5e4e7489f09be13e1ec73a"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Feb 07 16:34:53 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 23 16:13:35 2008 -0400"
      },
      "message": "SUNRPC: export svc_sock_update_bufs\n\nNeeded since the plan is to not have a svc_create_thread helper and to\nhave current users of that function just call kthread_run directly.\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": "cd019f7517206a74d8cdb64d5c82b1f76be608cc",
      "tree": "ac5e563e23a26519ac5b48f0c2a46cc0f8a3c7cf",
      "parents": [
        "7b6962b0a6000df48c8a5fd967d262f77704101b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 17:03:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:19 2008 -0400"
      },
      "message": "SUNRPC: Don\u0027t change the RPCSEC_GSS context on a credential that is in use\n\nWhen a server rejects our credential with an AUTH_REJECTEDCRED or similar,\nwe need to refresh the credential and then retry the request.\nHowever, we do want to allow any requests that are in flight to finish\nexecuting, so that we can at least attempt to process the replies that\ndepend on this instance of the credential.\n\nThe solution is to ensure that gss_refresh() looks up an entirely new\nRPCSEC_GSS credential instead of attempting to create a context for the\nexisting invalid credential.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7b6962b0a6000df48c8a5fd967d262f77704101b",
      "tree": "8902c9232242ac48c49f3e7a4ff0a94045974726",
      "parents": [
        "7c1d71cf56feebfb5b98219b9d11dfc3a2feca62"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 16:53:01 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:15 2008 -0400"
      },
      "message": "SUNRPC: Fix a race in gss_refresh_upcall()\n\nIf the downcall completes before we get the spin_lock then we currently\nfail to refresh the credential.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c1d71cf56feebfb5b98219b9d11dfc3a2feca62",
      "tree": "5a073d987ec79900b2aff217a226c8c78e94b579",
      "parents": [
        "636ac43318ce6939c1698fb67e714d421314ed71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 16:52:57 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:12 2008 -0400"
      },
      "message": "SUNRPC: Don\u0027t disconnect more than once if retransmitting NFSv4 requests\n\nNFSv4 requires us to ensure that we break the TCP connection before we\u0027re\nallowed to retransmit a request. However in the case where we\u0027re\nretransmitting several requests that have been sent on the same\nconnection, we need to ensure that we don\u0027t interfere with the attempt to\nreconnect and/or break the connection again once it has been established.\n\nWe therefore introduce a \u0027connection\u0027 cookie that is bumped every time a\nconnection is broken. This allows requests to track if they need to force a\ndisconnection.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "636ac43318ce6939c1698fb67e714d421314ed71",
      "tree": "32b1608e40b7c691a6a6c4fbed20181a0c51900b",
      "parents": [
        "06b4b681ababc20596aa947595714710f557131d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 14:00:47 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:08 2008 -0400"
      },
      "message": "SUNRPC: Remove the unused export of xprt_force_disconnect\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "06b4b681ababc20596aa947595714710f557131d",
      "tree": "84a437ee1922b63931075faf389db87650e0ca79",
      "parents": [
        "d2b831416365e8b1f27809b62d5e4260883956cc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 16 16:51:38 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:05 2008 -0400"
      },
      "message": "SUNRPC: remove XS_SENDMSG_RETRY\n\nThe condition for exiting from the loop in xs_tcp_send_request() should be\nthat we find we\u0027re not making progress (i.e. number of bytes sent is 0).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d2b831416365e8b1f27809b62d5e4260883956cc",
      "tree": "f812eddfe29aed2d821b1d7f6d1fd9a64074a2d2",
      "parents": [
        "a2b2bb8822c78806930bbb4d4c5bb3ae69648fd0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 14 18:13:37 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:55:02 2008 -0400"
      },
      "message": "SUNRPC: Protect creds against early garbage collection\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c67db3a8a98045744f06fcd6d8f476d9df0ba5c",
      "tree": "4d0041249b48f9ac66560550e0e96c9c86c37891",
      "parents": [
        "78ea323be6380a9313e87fe241809e912e8ae401"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:50:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:56 2008 -0400"
      },
      "message": "NFSv4: Reintroduce machine creds\n\nWe need to try to ensure that we always use the same credentials whenever\nwe re-establish the clientid on the server. If not, the server won\u0027t\nrecognise that we\u0027re the same client, and so may not allow us to recover\nstate.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78ea323be6380a9313e87fe241809e912e8ae401",
      "tree": "6ea9a772ab677012c52a08c6b32e366d7bf129d4",
      "parents": [
        "441092415770ddec648800701895913c4bfd60c1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 07 20:49:28 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:54:53 2008 -0400"
      },
      "message": "NFSv4: Don\u0027t use cred-\u003ecr_ops-\u003ecr_name in nfs4_proc_setclientid()\n\nWith the recent change to generic creds, we can no longer use\ncred-\u003ecr_ops-\u003ecr_name to distinguish between RPCSEC_GSS principals and\nAUTH_SYS/AUTH_NULL identities. Replace it with the rpc_authops-\u003eau_name\ninstead...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1e799b673c6b82b336ab13c48b5651d511ca3000",
      "tree": "9954155b2a9bdd72e49a078418ceea6c47bcc609",
      "parents": [
        "c1d519312dcdf11532fed9f99a8ecc3547ffd9d6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 21 16:19:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:20 2008 -0400"
      },
      "message": "SUNRPC: Fix read ordering problems with req-\u003erq_private_buf.len\n\nWe want to ensure that req-\u003erq_private_buf.len is updated before\nreq-\u003erq_received, so that call_decode() doesn\u0027t use an old value for\nreq-\u003erq_rcv_buf.len.\n\nIn \u0027call_decode()\u0027 itself, instead of using task-\u003etk_status (which is set\nusing req-\u003erq_received) must use the actual value of\nreq-\u003erq_private_buf.len when deciding whether or not the received RPC reply\nis too short.\n\nFinally ensure that we set req-\u003erq_rcv_buf.len to zero when retrying a\nrequest. A typo meant that we were resetting req-\u003erq_private_buf.len in\ncall_decode(), and then clobbering that value with the old rq_rcv_buf.len\nagain in xprt_transmit().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "080a1f148df0615f7a610e4776dd8f3fb706f54f",
      "tree": "bf6f52a5a2974adee916c86a01ffdd3a739cf71f",
      "parents": [
        "b6ddf64ffe9d59577a9176856bb6fe69a539f573"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 14:22:31 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:52:54 2008 -0400"
      },
      "message": "SUNRPC: Don\u0027t attempt to destroy expired RPCSEC_GSS credentials..\n\n..and always destroy using a \u0027soft\u0027 RPC call. Destroying GSS credentials\nisn\u0027t mandatory; the server can always cope with a few credentials not\ngetting destroyed in a timely fashion.\n\nThis actually fixes a hang situation. Basically, some servers will decide\nthat the client is crazy if it tries to destroy an RPC context for which\nthey have sent an RPCSEC_GSS_CREDPROBLEM, and so will refuse to talk to it\nfor a while.\nThe regression therefor probably was introduced by commit\n0df7fb74fbb709591301871a38aac7735a1d6583.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6ddf64ffe9d59577a9176856bb6fe69a539f573",
      "tree": "dd12c31555cf9449dd6094428d377186b3c4c373",
      "parents": [
        "24b74bf0c9e08cbda74d3c64af69ad402ed54e04"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 17 18:52:19 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:52:44 2008 -0400"
      },
      "message": "SUNRPC: Fix up xprt_write_space()\n\nThe rest of the networking layer uses SOCK_ASYNC_NOSPACE to signal whether\nor not we have someone waiting for buffer memory. Convert the SUNRPC layer\nto use the same idiom.\nRemove the unlikely()s in xs_udp_write_space and xs_tcp_write_space. In\nfact, the most common case will be that there is nobody waiting for buffer\nspace.\n\nSOCK_NOSPACE is there to tell the TCP layer whether or not the cwnd was\nlimited by the application window. Ensure that we follow the same idiom as\nthe rest of the networking layer here too.\n\nFinally, ensure that we clear SOCK_ASYNC_NOSPACE once we wake up, so that\nwrite_space() doesn\u0027t keep waking things up on xprt-\u003epending.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24b74bf0c9e08cbda74d3c64af69ad402ed54e04",
      "tree": "bd18884769eef620d12babbc86a008561321758e",
      "parents": [
        "0490a54a00c14212f22c5948c8c13a4553d745bd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 13:15:47 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:52:33 2008 -0400"
      },
      "message": "SUNRPC: Fix a bug in call_decode()\n\ncall_verify() can, under certain circumstances, free the RPC slot. In that\ncase, our cached pointer \u0027req \u003d task-\u003etk_rqstp\u0027 is invalid. Bug was\nintroduced in commit 220bcc2afd7011b3e0569fc178331fa983c92c1b (SUNRPC:\nDon\u0027t call xprt_release in call refresh).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c5f59f0833df945eef7ff35f3dc6ba61c5f293dd",
      "tree": "32c1a94847d0154051c79011212d401462723d55",
      "parents": [
        "b53e921ba1cff8453dc9a87a84052fa12d5b30bd"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:10 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "nodemask: use new node_to_cpumask_ptr function\n\n  * Use new node_to_cpumask_ptr.  This creates a pointer to the\n    cpumask for a given node.  This definition is in mm patch:\n\n\tasm-generic-add-node_to_cpumask_ptr-macro.patch\n\n  * Use new set_cpus_allowed_ptr function.\n\nDepends on:\n\t[mm-patch]: asm-generic-add-node_to_cpumask_ptr-macro.patch\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\t[x86/latest]: x86: add cpus_scnprintf function\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Greg Banks \u003cgnb@melbourne.sgi.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "334d094504c2fe1c44211ecb49146ae6bca8c321",
      "tree": "d3c0f68e4b9f8e3d2ccc39e7dfe5de0534a5fad9",
      "parents": [
        "d1a4be630fb068f251d64b62919f143c49ca8057",
        "d1643d24c61b725bef399cc1cf2944b4c9c23177"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 18:02:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 18:02:35 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26: (1090 commits)\n  [NET]: Fix and allocate less memory for -\u003epriv\u0027less netdevices\n  [IPV6]: Fix dangling references on error in fib6_add().\n  [NETLABEL]: Fix NULL deref in netlbl_unlabel_staticlist_gen() if ifindex not found\n  [PKT_SCHED]: Fix datalen check in tcf_simp_init().\n  [INET]: Uninline the __inet_inherit_port call.\n  [INET]: Drop the inet_inherit_port() call.\n  SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.\n  [netdrvr] forcedeth: internal simplifications; changelog removal\n  phylib: factor out get_phy_id from within get_phy_device\n  PHY: add BCM5464 support to broadcom PHY driver\n  cxgb3: Fix __must_check warning with dev_dbg.\n  tc35815: Statistics cleanup\n  natsemi: fix MMIO for PPC 44x platforms\n  [TIPC]: Cleanup of TIPC reference table code\n  [TIPC]: Optimized initialization of TIPC reference table\n  [TIPC]: Remove inlining of reference table locking routines\n  e1000: convert uint16_t style integers to u16\n  ixgb: convert uint16_t style integers to u16\n  sb1000.c: make const arrays static\n  sb1000.c: stop inlining largish static functions\n  ...\n"
    },
    {
      "commit": "1e42198609d73ed1a9adcba2af275c24c2678420",
      "tree": "32fd4d9073bfc0f3909af8f9fb4bcff38951d01a",
      "parents": [
        "794eb6bf20ebf992c040ea831cd3a9c64b0c1f7a",
        "4b119e21d0c66c22e8ca03df05d9de623d0eb50f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 17 23:56:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 17 23:56:30 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "0f39cf3d54e67a705773fd0ec56ca3dcd3e9272f",
      "tree": "83f19f0014d0e880fb245906105e903dd6d733d5",
      "parents": [
        "e7eacd36865ae0707f5efae8e4dda421ffcd1b66"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Wed Apr 16 21:09:32 2008 -0700"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Wed Apr 16 21:09:32 2008 -0700"
      },
      "message": "IB/core: Add support for \"send with invalidate\" work requests\n\nAdd a new IB_WR_SEND_WITH_INV send opcode that can be used to mark a\n\"send with invalidate\" work request as defined in the iWARP verbs and\nthe InfiniBand base memory management extensions.  Also put \"imm_data\"\nand a new \"invalidate_rkey\" member in a new \"ex\" union in struct\nib_send_wr. The invalidate_rkey member can be used to pass in an\nR_Key/STag to be invalidated.  Add this new union to struct\nib_uverbs_send_wr.  Add code to copy the invalidate_rkey field in\nib_uverbs_post_send().\n\nFix up low-level drivers to deal with the change to struct ib_send_wr,\nand just remove the imm_data initialization from net/sunrpc/xprtrdma/,\nsince that code never does any send with immediate operations.\n\nAlso, move the existing IB_DEVICE_SEND_W_INV flag to a new bit, since\nthe iWARP drivers currently in the tree set the bit.  The amso1100\ndriver at least will silently fail to honor the IB_SEND_INVALIDATE bit\nif passed in as part of userspace send requests (since it does not\nimplement kernel bypass work request queueing).  Remove the flag from\nall existing drivers that set it until we know which ones are OK.\n\nThe values chosen for the new flag is not consecutive to avoid clashing\nwith flags defined in the XRC patches, which are not merged yet but\nwhich are already in use and are likely to be merged soon.\n\nThis resurrects a patch sent long ago by Mikkel Hagen \u003cmhagen@iol.unh.edu\u003e.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "ed13c27e546667fb0967ae30f5070cd7f6455f90",
      "tree": "164af7ac3dfd69c6c939150b530fd57a9eb8e54d",
      "parents": [
        "240ee831187e000704cba3208ef6b0a8ad49bd64"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Apr 07 16:52:44 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 08 21:07:00 2008 -0400"
      },
      "message": "SUNRPC: Fix a memory leak in rpc_create()\n\nCommit 510deb0d was supposed to move the xprt_create_transport() call in\nrpc_create(), but neglected to remove the old call site.  This resulted in\na transport leak after every rpc_create() call.\n\nThis leak is present in 2.6.24 and 2.6.25.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "daeba89d43af0fa469d38a4ccdc32fff8ca17c2e",
      "tree": "1c228b639571866d492e7ab8d5b843e41a955970",
      "parents": [
        "7180c4c9e09888db0a188f729c96c6d7bd61fa83"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 31 17:02:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 08 21:06:50 2008 -0400"
      },
      "message": "SUNRPC: don\u0027t call flush_dcache_page() with an invalid pointer\n\nFix a problem in _copy_to_pages(), whereby it may call flush_dcache_page()\nwith an invalid pointer due to the fact that \u0027pgto\u0027 gets incremented\nbeyond the end of the page array. Fix is to exit the loop without this\nunnecessary increment of pgto.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3bb5da3837cc1aa17736b05139c9a22c3794851a",
      "tree": "c92d5684a866542b1cb20641607ac1643ce03a47",
      "parents": [
        "7feb49c82a74bc7c091b8ab2a3f96baa33d08ece",
        "9597362d354f8655ece324b01d0c640a0e99c077"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:33:42 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:33:42 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "c8237a5fcea9d49a73275b4c8f541dd42f8da1a4",
      "tree": "b93287513360a027baf3a8936c457ab2e21aa532",
      "parents": [
        "12c22d6ef299ccf0955e5756eb57d90d7577ac68"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 25 22:27:19 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 26 11:24:19 2008 -0700"
      },
      "message": "SVCRDMA: Check num_sge when setting LAST_CTXT bit\n\nThe RDMACTXT_F_LAST_CTXT bit was getting set incorrectly\nwhen the last chunk in the read-list spanned multiple pages. This\nresulted in a kernel panic when the wrong context was used to\nbuild the RPC iovec page list.\n\nRDMA_READ is used to fetch RPC data from the client for\nNFS_WRITE requests. A scatter-gather is used to map the\nadvertised client side buffer to the server-side iovec and\nassociated page list.\n\nWR contexts are used to convey which scatter-gather entries are\nhandled by each WR. When the write data is large, a single RPC may\nrequire multiple RDMA_READ requests so the contexts for a single RPC\nare chained together in a linked list. The last context in this list\nis marked with a bit RDMACTXT_F_LAST_CTXT so that when this WR completes,\nthe CQ handler code can enqueue the RPC for processing.\n\nThe code in rdma_read_xdr was setting this bit on the last two\ncontexts on this list when the last read-list chunk spanned multiple\npages. This caused the svc_rdma_recvfrom logic to incorrectly build\nthe RPC and caused the kernel to crash because the second-to-last\ncontext doesn\u0027t contain the iovec page list.\n\nModified the condition that sets this bit so that it correctly detects\nthe last context for the RPC.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nTested-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3073779f8362d64b804882f5f41c208c4a5e11e",
      "tree": "6aa6a950cc9bed39deafd73bca1e99e108d31b51",
      "parents": [
        "b9e76a00749521f2b080fa8a4fb15f66538ab756"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Mon Mar 24 12:03:03 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 24 11:25:25 2008 -0700"
      },
      "message": "SVCRDMA: Use only 1 RDMA read scatter entry for iWARP adapters\n\nThe iWARP protocol limits RDMA read requests to a single scatter\nentry.  NFS/RDMA has code in rdma_read_max_sge() that is supposed to\nlimit the sge_count for RDMA read requests to 1, but the code to do\nthat is inside an #ifdef RDMA_TRANSPORT_IWARP block.  In the mainline\nkernel at least, RDMA_TRANSPORT_IWARP is an enum and not a\npreprocessor #define, so the #ifdef\u0027ed code is never compiled.\n\nIn my test of a kernel build with -j8 on an NFS/RDMA mount, this\nproblem eventually leads to trouble starting with:\n\n    svcrdma: Error posting send \u003d -22\n    svcrdma : RDMA_READ error \u003d -22\n\nand things go downhill from there.\n\nThe trivial fix is to delete the #ifdef guard.  The check seems to be\na remnant of when the NFS/RDMA code was not merged and needed to\ncompile against multiple kernel versions, although I don\u0027t think it\never worked as intended.  In any case now that the code is upstream\nthere\u0027s no need to test whether the RDMA_TRANSPORT_IWARP constant is\ndefined or not.\n\nWithout this patch, my kernel build on an NFS/RDMA mount using NetEffect\nadapters quickly and 100% reproducibly failed with an error like:\n\n    ld: final link failed: Software caused connection abort\n\nWith the patch applied I was able to complete a kernel build on the\nsame setup.\n\n(Tom Tucker says this is \"actually an _ancient_ remnant when it had to\ncompile against iWARP vs. non-iWARP enabled OFA trees.\")\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nAcked-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7c350e92aab1bba68f26a6027b734adcf9824ba",
      "tree": "aa99bd94c3049dd871d9c030d70a5f3d87591a95",
      "parents": [
        "2f42b5d043ee271d1e5d30ecd77186b6c4d4e534",
        "f8512ad0da16cbe156f3a7627971cdf0b39c4138"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:44 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 17:59:44 2008 -0400"
      },
      "message": "Merge branch \u0027hotfixes\u0027 into devel\n"
    },
    {
      "commit": "577f99c1d08cf9cbdafd4e858dd13ff04d855090",
      "tree": "0f726bbda9b18d311d4c95198bbd96cb7ac01db0",
      "parents": [
        "26c0f03f6b77c513cb7bc37b73a06819bdbb791b",
        "2f633928cbba8a5858bb39b11e7219a41b0fbef5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 18 00:37:55 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 18 00:37:55 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/rt2x00/rt2x00dev.c\n\tnet/8021q/vlan_dev.c\n"
    },
    {
      "commit": "2f633928cbba8a5858bb39b11e7219a41b0fbef5",
      "tree": "9a82f4b7f2c3afe4b0208d8e44ea61bae90a7d22",
      "parents": [
        "5e226e4d9016daee170699f8a4188a5505021756",
        "bde4f8fa8db2abd5ac9c542d76012d0fedab050f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 23:44:31 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 23:44:31 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "27724426a9000086993a8107a11cff276c4bd4d4",
      "tree": "bb875f3df5b0b64e3bde48093674d857b2874901",
      "parents": [
        "bc92dd194d05e8334b210552fbc0ac5711d72ea9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 17 22:48:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 22:48:03 2008 -0700"
      },
      "message": "[SUNRPC]: net/* NULL noise\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6f1cebf71c4e7aae7dfa43414ce2631291def9f",
      "tree": "a3abf6bb3e63f2ecea1a4e05bf8d288d920acb17",
      "parents": [
        "fc4d30a6fc88121081916faef930d8c3e4ed6036"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 17 22:44:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 17 22:44:53 2008 -0700"
      },
      "message": "[NET] endianness noise: INADDR_ANY\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "98a8e3239427051f5d44f2025b398bdcc3918f37",
      "tree": "aa3e6ba69dbf8575c2c6e10c013aa23d7d638af0",
      "parents": [
        "5c691044ecbca04dd558fca4c754121689fe1b34"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 12:25:28 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:49 2008 -0400"
      },
      "message": "SUNRPC: Add a helper rpcauth_lookup_generic_cred()\n\nThe NFSv4 protocol allows clients to negotiate security protocols on the\nfly in the case where an administrator on the server changes the export\nsettings and/or in the case where we may have a filesystem migration event.\n\nInstead of having the NFS client code cache credentials that are tied to a\nparticular AUTH method it is therefore preferable to have a generic credential\nthat can be converted into whatever AUTH is in use by the RPC client when\nthe read/write/sillyrename/... is put on the wire.\n\nWe do this by means of the new \"generic\" credential, which basically just\ncaches the minimal information that is needed to look up an RPCSEC_GSS,\nAUTH_SYS, or AUTH_NULL credential.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5c691044ecbca04dd558fca4c754121689fe1b34",
      "tree": "7a56b63c44766fcca0d7ac245ce0e19077b6f118",
      "parents": [
        "9a559efd4199c9812d339e23cc1b6055366b224f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 16:21:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:41 2008 -0400"
      },
      "message": "SUNRPC: Add an rpc_credop callback for binding a credential to an rpc_task\n\nWe need the ability to treat \u0027generic\u0027 creds specially, since they want to\nbind instances of the auth cred instead of binding themselves.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9a559efd4199c9812d339e23cc1b6055366b224f",
      "tree": "44ae54434a6bd368693ea76b210448496e222e46",
      "parents": [
        "4ccda2cdd8d156b6f49440653d5d6997e0facf97"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 12:24:49 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:38 2008 -0400"
      },
      "message": "SUNRPC: Add a generic RPC credential\n\nAdd an rpc credential that is not tied to any particular auth mechanism,\nbut that can be cached by NFS, and later used to look up a cred for\nwhichever auth mechanism that turns out to be valid when the RPC call is\nbeing made.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ccda2cdd8d156b6f49440653d5d6997e0facf97",
      "tree": "fd75203f002edfd1657c9ca7bcb5494a7b783cf1",
      "parents": [
        "af093835774931de898a9baf7b4041fa0d100f77"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 16:20:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:35 2008 -0400"
      },
      "message": "SUNRPC: Clean up rpcauth_bindcred()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "af093835774931de898a9baf7b4041fa0d100f77",
      "tree": "f7617eb4556ead8615f6c26d8b02fcec8f64c6b3",
      "parents": [
        "25337fdc85951dfeac944f16cb565904c619077a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 12:12:16 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:32 2008 -0400"
      },
      "message": "SUNRPC: Fix RPCAUTH_LOOKUP_ROOTCREDS\n\nThe current RPCAUTH_LOOKUP_ROOTCREDS flag only works for AUTH_SYS\nauthentication, and then only as a special case in the code. This patch\nremoves the auth_sys special casing, and replaces it with generic code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "25337fdc85951dfeac944f16cb565904c619077a",
      "tree": "8c0f37eca64775825ea84ade40460862a2ba377e",
      "parents": [
        "9446389ef612096704fdf18fa79bab423d4110f0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 12 14:40:14 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 14 13:42:29 2008 -0400"
      },
      "message": "SUNRPC: Fix a bug in rpcauth_lookup_credcache()\n\nThe hash bucket is for some reason always being set to zero.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3fedb3c5a80595d94f7cbe47a6dba9184d869eb8",
      "tree": "50254172a14b3b67c7ab289341e4938cb2cd1273",
      "parents": [
        "c48cbb405c4f338ce3263c44d621eff41d9a95fc"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 11 14:31:40 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 12 12:37:34 2008 -0700"
      },
      "message": "SVCRDMA: Fix erroneous BUG_ON in send_write\n\nThe assertion that checks for sge context overflow is\nincorrectly hard-coded to 32. This causes a kernel bug\ncheck when using big-data mounts. Changed the BUG_ON to\nuse the computed value RPCSVC_MAXPAGES.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c48cbb405c4f338ce3263c44d621eff41d9a95fc",
      "tree": "9b40ce571009d8acae6b1023b5e50247d3f33d15",
      "parents": [
        "ee27a558ae0ff5063ccd6c47ca102c0bb0e3ba27"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Tue Mar 11 14:31:39 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 12 12:37:34 2008 -0700"
      },
      "message": "SVCRDMA: Add xprt refs to fix close/unmount crash\n\nRDMA connection shutdown on an SMP machine can cause a kernel crash due\nto the transport close path racing with the I/O tasklet.\n\nAdditional transport references were added as follows:\n- A reference when on the DTO Q to avoid having the transport\n  deleted while queued for I/O.\n- A reference while there is a QP able to generate events.\n- A reference until the DISCONNECTED event is received on the CM ID\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9446389ef612096704fdf18fa79bab423d4110f0",
      "tree": "3e4fda7270be58ae176d20d318e61fb115b325b5",
      "parents": [
        "cdd0972945dbcb8ea24db365d9b0e100af2a27bb",
        "84c6f6046c5a2189160a8f0dca8b90427bf690ea"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 08 11:49:24 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 08 11:49:24 2008 -0500"
      },
      "message": "Merge commit \u0027origin\u0027 into devel\n"
    },
    {
      "commit": "4c1aa6f8b9686ddc7221f0f3b63f9b7dd1467543",
      "tree": "8774d2a82e5a3682e863eb9e1ae34fd7aed8ac94",
      "parents": [
        "5d49c101a126808a38f2a1f4eedc1fd28233e37f",
        "4e99a1ff3410c627a428d5ddb6cd2e7bc908a486"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 07 12:08:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 07 12:08:07 2008 -0800"
      },
      "message": "Merge branch \u0027hotfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027hotfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix dentry revalidation for NFSv4 referrals and mountpoint crossings\n  NFS: Fix the fsid revalidation in nfs_update_inode()\n  SUNRPC: Fix a nfs4 over rdma transport oops\n  NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c\n"
    },
    {
      "commit": "ee1a2c564f67407947e89f1dac75ac0af0ba88c7",
      "tree": "c62ea8d12b876f78662c0f9e0372c6d0d1f0c31a",
      "parents": [
        "af1b8c2ff7c337c4e96db12d6b7b61eaa91aa069"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "tmt@netapp.com",
        "time": "Wed Feb 27 15:04:26 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 07 14:35:32 2008 -0500"
      },
      "message": "SUNRPC: Fix a nfs4 over rdma transport oops\n\nPrevent an RPC oops when freeing a dynamically allocated RDMA\nbuffer, used in certain special-case large metadata operations.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: James Lentini \u003cjlentini@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0dc47877a3de00ceadea0005189656ae8dc52669",
      "tree": "7440a87385fe318cb42f0ae161be195f5e967d82",
      "parents": [
        "6387c4bed539539b05fa773cf2ff26529dc3074c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Mar 05 20:47:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 05 20:47:47 2008 -0800"
      },
      "message": "net: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cdd0972945dbcb8ea24db365d9b0e100af2a27bb",
      "tree": "d41204db20ccc81cecf99a332e2fa764075e8637",
      "parents": [
        "5e4424af9a1f062c6451681dff24a26e27741cc6",
        "cbc20059259edee4ea24c923e6627c394830c972"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:48:05 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:48:05 2008 -0800"
      },
      "message": "Merge branch \u0027cleanups\u0027 into next\n"
    },
    {
      "commit": "5e4424af9a1f062c6451681dff24a26e27741cc6",
      "tree": "fcba54a8fc2d94c1d691ab5b8b956ac71b5cb8d4",
      "parents": [
        "ff2d7db848f8db7cade39e55f78f86d77e0de01a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:53:49 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:28 2008 -0800"
      },
      "message": "SUNRPC: Remove now-redundant RCU-safe rpc_task free path\n\nNow that we\u0027ve tightened up the locking rules for RPC queue wakeups, we can\nremove the RCU-safe kfree calls...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff2d7db848f8db7cade39e55f78f86d77e0de01a",
      "tree": "fb40ecbcad821ec6e31f4324c0483e13242f36c7",
      "parents": [
        "f5fb7b06e4e4ab18326f067f4317b2016ce18af2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:51 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:27 2008 -0800"
      },
      "message": "SUNRPC: Ensure that we read all available tcp data\n\nDon\u0027t stop until we run out of data, or we hit an error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f5fb7b06e4e4ab18326f067f4317b2016ce18af2",
      "tree": "c1a2c972d373d503b432f592b52d4fd2a59a1b46",
      "parents": [
        "eb276c0e10187702928aeaa133e1d3dbaf3eafc7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:50 2008 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:25 2008 -0800"
      },
      "message": "SUNRPC: Eliminate the now-redundant rpc_start_wakeup()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb276c0e10187702928aeaa133e1d3dbaf3eafc7",
      "tree": "f7cfb639d97747f32573dc72970aa9bf589fb0da",
      "parents": [
        "36df9aae3158ce8fc4ede241169dc94ac910d884"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 17:27:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:26:21 2008 -0800"
      },
      "message": "SUNRPC: Switch tasks to using the rpc_waitqueue\u0027s timer function\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36df9aae3158ce8fc4ede241169dc94ac910d884",
      "tree": "5f6caa22ce9414850fd34eefb54150b120a8f4e7",
      "parents": [
        "f6a1cc89309f0ae847a9b6fe418d1c4215e5bc55"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 18 16:18:52 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:21:59 2008 -0800"
      },
      "message": "SUNRPC: Add a timer function to wait queues.\n\nThis is designed to replace the timeout timer in the individual rpc_tasks.\nBy putting the timer function in the wait queue, we will eventually be able\nto reduce the total number of timers in use by the RPC subsystem.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f6a1cc89309f0ae847a9b6fe418d1c4215e5bc55",
      "tree": "4f5d585dd901718d66d9c354625f9a0bc85c234d",
      "parents": [
        "5d00837b90340af9106dcd93af75fd664c8eb87f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 17:06:55 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 23:17:27 2008 -0800"
      },
      "message": "SUNRPC: Add a (empty for the moment) destructor for rpc_wait_queues\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2ce8f047d5f3c0d782838bd2ecb6e4c440268e6d",
      "tree": "8c8f667f23e194e31dd9b82acaf5e3c0aa4238f1",
      "parents": [
        "64758bd7927be1f755e7a08edb2253d37e4b2445"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Thu Feb 28 14:00:59 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 28 14:00:59 2008 -0800"
      },
      "message": "[SUNRPC]: Use proc_create() to setup -\u003eproc_fops first\n\nUse proc_create() to make sure that -\u003eproc_fops be setup before gluing\nPDE to main tree.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5d00837b90340af9106dcd93af75fd664c8eb87f",
      "tree": "f537dc84421cf150d66b630e56ea8107078c07a8",
      "parents": [
        "fda1393938035559b417dd5b26b9cc293a7aee00"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 16:34:17 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:44 2008 -0800"
      },
      "message": "SUNRPC: Run rpc timeout functions as callbacks instead of in softirqs\n\nAn audit of the current RPC timeout functions shows that they don\u0027t really\never need to run in the softirq context. As long as the softirq is\nable to signal that the wakeup is due to a timeout (which it can do by\nsetting task-\u003etk_status to -ETIMEDOUT) then the callback functions can just\nrun as standard task-\u003etk_callback functions (in the rpciod/process\ncontext).\n\nThe only possible border-line case would be xprt_timer() for the case of\nUDP, when the callback is used to reduce the size of the transport\ncongestion window. In testing, however, the effect of moving that update\nto a callback would appear to be minor.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fda1393938035559b417dd5b26b9cc293a7aee00",
      "tree": "8190a6ad7a81974dd5f782f2ab872753742ff68d",
      "parents": [
        "96ef13b283934fbf60b732e6c4ce23e8babd0042"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 16:34:12 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:42 2008 -0800"
      },
      "message": "SUNRPC: Convert users of rpc_wake_up_task to use rpc_wake_up_queued_task\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "96ef13b283934fbf60b732e6c4ce23e8babd0042",
      "tree": "9efa8e92ff2e7f27746b65214a43ca3a4aed1b14",
      "parents": [
        "fde95c7554aa77f9a242f32b0b5f8f15395abf52"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 15:46:41 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:40 2008 -0800"
      },
      "message": "SUNRPC: Add a new helper rpc_wake_up_queued_task()\n\nIn all cases where we currently use rpc_wake_up_task(), we almost always\nknow on which waitqueue the rpc_task is actually sleeping. This will allows\nus to simplify the queue locking in a future patch.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fde95c7554aa77f9a242f32b0b5f8f15395abf52",
      "tree": "293e0161eb30e1e87a305d07e57f54f483655b78",
      "parents": [
        "101070ca2fe67186f5f5517b66cb4757b17f4e29"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 22 15:09:26 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:39 2008 -0800"
      },
      "message": "SUNRPC: Clean up rpc_run_timer()\n\nAll RPC timeout callback functions are expected to wake the task up. We can\nenforce this by moving the wakeup back into rpc_run_timer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "32bfb5c0f495dd88ef6bac4b76885d0820563739",
      "tree": "01adff1612a7aaad148a322b79bc02224e8ca735",
      "parents": [
        "383ba71938519959be8e0b598ec658f0c211ff45"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 19 20:04:21 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 25 21:40:34 2008 -0800"
      },
      "message": "SUNRPC: Allow the rpc_release() callback to be run on another workqueue\n\nA lot of the work done by the rpc_release() callback is inappropriate for\nrpciod as it will often involve things like starting a new rpc call in\norder to clean up state after an interrupted NFSv4 open() call, or\ncalls to mntput(), etc.\n\nThis patch allows the caller of rpc_run_task() to specify that the\nrpc_release callback should run on a different workqueue than the default\nrpciod_workqueue.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5216a8e70e25b01cbd2915cd0442fb96deb2c262",
      "tree": "f372bd3cb3fc2f4a2d3e4ad303e6c4d3f8f48865",
      "parents": [
        "90dc7d2796edf94a9eaa838321a9734c8513e717"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 21 10:57:45 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 21 18:42:29 2008 -0500"
      },
      "message": "Wrap buffers used for rpc debug printks into RPC_IFDEBUG\n\nSorry for the noise, but here\u0027s the v3 of this compilation fix :)\n\nThere are some places, which declare the char buf[...] on the stack\nto push it later into dprintk(). Since the dprintk sometimes (if the\nCONFIG_SYSCTL\u003dn) becomes an empty do { } while (0) stub, these buffers\ncause gcc to produce appropriate warnings.\n\nWrap these buffers with RPC_IFDEBUG macro, as Trond proposed, to\ncompile them out when not needed.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbc20059259edee4ea24c923e6627c394830c972",
      "tree": "648caf84d855d497880fdd0cfb58319806d80fd1",
      "parents": [
        "2785259631697ebb0749a3782cca206e2e542939"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 14 11:11:30 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 14 11:17:24 2008 -0500"
      },
      "message": "SUNRPC: Declare as const the rpc_message arguments to rpc_call_sync/async\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "65b6e42cdc5b6a1ce2ada31cc294d7e60b22bb43",
      "tree": "f8e1629ab3dce44de715e29811020892d467b189",
      "parents": [
        "073b86dacc3c0fa79c71f3519169ea18d5521227"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Feb 13 15:03:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:19 2008 -0800"
      },
      "message": "docbook: sunrpc filenames and notation fixes\n\nUse updated file list for docbook files and\nfix kernel-doc warnings in sunrpc:\nWarning(linux-2.6.24-git12//net/sunrpc/rpc_pipe.c:689): No description found for parameter \u0027rpc_client\u0027\nWarning(linux-2.6.24-git12//net/sunrpc/rpc_pipe.c:765): No description found for parameter \u0027flags\u0027\nWarning(linux-2.6.24-git12//net/sunrpc/clnt.c:584): No description found for parameter \u0027tk_ops\u0027\nWarning(linux-2.6.24-git12//net/sunrpc/clnt.c:618): No description found for parameter \u0027bufsize\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb50c8012cbd85b8e105584b32e4d5a2d335dcef",
      "tree": "c5398de8d736fcfaa01dd662ef34fd073c7a6f6c",
      "parents": [
        "fbb7878c1a2ee40a1e983bf20f3dd3a80255dcf2"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Fri Feb 08 16:02:04 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 10 18:11:22 2008 -0500"
      },
      "message": "SUNPRC: Fix printk format warning\n\nnet/sunrpc/xprtrdma/svc_rdma_sendto.c:160: warning: format \u0027%llx\u0027\nexpects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027u64\u0027\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "9f8bfae693c724120ffc8fb77564f6deb508daf3"
}
