)]}'
{
  "log": [
    {
      "commit": "763008c4357b73c8d18396dfd8d79dc58fa3f99d",
      "tree": "818add523a6b81b560bebac727c57c6a8ea6fd63",
      "parents": [
        "d1126ad907ce197ff45fbc2369fbeaf8ae6f75a8",
        "0a377cff9428af2da2b293d11e07bc4dbf064ee5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 15:45:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 15:45:23 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix an Oops in the NFSv4 atomic open code\n  NFS: Fix the selection of security flavours in Kconfig\n  NFS: fix the return value of nfs_file_fsync()\n  rpcrdma: Fix SQ size calculation when memreg is FRMR\n  xprtrdma: Do not truncate iova_start values in frmr registrations.\n  nfs: Remove redundant NULL check upon kfree()\n  nfs: Add \"lookupcache\" to displayed mount options\n  NFS: allow close-to-open cache semantics to apply to root of NFS filesystem\n  SUNRPC: fix NFS client over TCP hangs due to packet loss (Bug 16494)\n"
    },
    {
      "commit": "9bbb9e5a33109b2832e2e63dcc7a132924ab374b",
      "tree": "87270ed3a61d0d0e654a61c8d44504cdef330192",
      "parents": [
        "a14fe249a8f74269c9e636bcbaa78f5bdb354ce3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:12 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:13 2010 +0930"
      },
      "message": "param: use ops in struct kernel_param, rather than get and set fns directly\n\nThis is more kernel-ish, saves some space, and also allows us to\nexpand the ops without breaking all the callers who are happy for the\nnew members to be NULL.\n\nThe few places which defined their own param types are changed to the\nnew scheme (more which crept in recently fixed in following patches).\n\nSince we\u0027re touching them anyway, we change get() and set() to take a\nconst struct kernel_param (which they really are).  This causes some\nharmless warnings until we fix them (in following patches).\n\nTo reduce churn, module_param_call creates the ops struct so the callers\ndon\u0027t have to change (and casts the functions to reduce warnings).\nThe modern version which takes an ops struct is called module_param_cb.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ville Syrjala \u003csyrjala@sci.fi\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Alessandro Rubini \u003crubini@ipvvis.unipv.it\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-input@vger.kernel.org\nCc: linux-fbdev-devel@lists.sourceforge.net\nCc: linux-nfs@vger.kernel.org\nCc: netdev@vger.kernel.org\n"
    },
    {
      "commit": "669502ff31d7dba1849aec7ee2450a3c61f57d39",
      "tree": "a56e4958f71efcc5e9f844255e3d437e00306a06",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534"
      ],
      "author": {
        "name": "Andy Chittenden",
        "email": "andyc.bluearc@gmail.com",
        "time": "Tue Aug 10 10:19:53 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 10 10:19:53 2010 -0400"
      },
      "message": "SUNRPC: fix NFS client over TCP hangs due to packet loss (Bug 16494)\n\nWhen reusing a TCP connection, ensure that it\u0027s aborted if a previous\nshutdown attempt has been made on that connection so that the RPC over\nTCP recovery mechanism succeeds.\n\nSigned-off-by: Andy Chittenden \u003candyc.bluearc@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b76ce56192bcf618013fb9aecd83488cffd645cc",
      "tree": "1a071da8b3e4fcc1fbfe67c99cc622372502edb2",
      "parents": [
        "f799bdb355edaabd81b778087613409a8932fbe9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 16 13:57:32 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:21:18 2010 -0400"
      },
      "message": "SUNRPC: Fix a re-entrancy bug in xs_tcp_read_calldir()\n\nIf the attempt to read the calldir fails, then instead of storing the read\nbytes, we currently discard them. This leads to a garbage final result when\nupon re-entry to the same routine, we read the remaining bytes.\n\nFixes the regression in bugzilla number 16213. Please see\n    https://bugzilla.kernel.org/show_bug.cgi?id\u003d16213\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0a68b0bed08eeb7ec62e0125f17856b1ccb1ea4b",
      "tree": "2f131868f81599273693d0481a4166277c4f1077",
      "parents": [
        "b1cdc4670b9508fcd47a15fbd12f70d269880b37"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 26 08:42:24 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 26 08:43:50 2010 -0400"
      },
      "message": "sunrpc: fix leak on error on socket xprt setup\n\nAlso collect exit code together while we\u0027re at it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "3fa21e07e6acefa31f974d57fba2b6920a7ebd1a",
      "tree": "4254644ef2579e9ac96db6ec0535b5e4231fd18e",
      "parents": [
        "b60b6592baa69c43a5a0f55d6300a7feaab15338"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon May 17 23:08:21 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 23:23:14 2010 -0700"
      },
      "message": "net: Remove unnecessary returns from void function()s\n\nThis patch removes from net/ (but not any netfilter files)\nall the unnecessary return; statements that precede the\nlast closing brace of void functions.\n\nIt does not remove the returns that are immediately\npreceded by a label as gcc doesn\u0027t like that.\n\nDone via:\n$ grep -rP --include\u003d*.[ch] -l \"return;\\n}\" net/ | \\\n  xargs perl -i -e \u0027local $/ ; while (\u003c\u003e) { s/\\n[ \\t\\n]+return;\\n}/\\n}/g; print; }\u0027\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d60dbb20a74c2cfa142be0a34dac3c6547ea086c",
      "tree": "7af95739f8fbbef11f490b5b58bf639dbbe8a181",
      "parents": [
        "9c7e7e23371e629dbb3b341610a418cdf1c19d91"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 13 12:51:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:36 2010 -0400"
      },
      "message": "SUNRPC: Move the task-\u003etk_bytes_sent and tk_rtt to struct rpc_rqst\n\nIt seems strange to maintain stats for bytes_sent in one structure, and\nbytes received in another. Try to assemble all the RPC request-related\nstats in struct rpc_rqst\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "712a4338669d7d57f952244abb608e6ac07e39da",
      "tree": "97875575e55a85ac02acc39bb7fe6a6139c71885",
      "parents": [
        "ff8399709e41bf72b4cb145612a0f9a9f7283c83"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 12 17:50:23 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:33 2010 -0400"
      },
      "message": "SUNRPC: Fix xs_setup_bc_tcp()\n\nIt is a BUG for anybody to call this function without setting\nargs-\u003ebc_xprt. Trying to return an error value is just wrong, since the\nuser cannot fix this: it is a programming error, not a user error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bbc72cea58f671665b6362be0d4e391813ac0eee",
      "tree": "e70a35d3bc05ece4a532514893fec151aee2bd46",
      "parents": [
        "9bc4e3ca46e4eb9cb434de4175c6041d00bbdca3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri May 07 13:34:27 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:32 2010 -0400"
      },
      "message": "SUNRPC: RPC metrics and RTT estimator should use same RTT value\n\nCompute an RPC request\u0027s RTT once, and use that value both for reporting\nRPC metrics, and for adjusting the RTT context used by the RPC client\u0027s RTT\nestimator algorithm.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a8ce4a8f37fef0a09a1e920c2e09f67a80426c7e",
      "tree": "cd3c11c87fa63c8bf15e74f311560a83637fc3fa",
      "parents": [
        "0b9e79431377df452348e78262dd5a3dc359eeef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:42:12 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:30 2010 -0400"
      },
      "message": "SUNRPC: Fail over more quickly on connect errors\n\nWe should not allow soft tasks to wait for longer than the major timeout\nperiod when waiting for a reconnect to occur.\n\nRemove the field xprt-\u003econnect_timeout since it has been obsoleted by\nxprt-\u003ereestablish_timeout.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0b9e79431377df452348e78262dd5a3dc359eeef",
      "tree": "0a69324b177e2db40e88988b83e0782dd9d98990",
      "parents": [
        "19445b99b6d66af661c586c052de23110731a502"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 16 16:41:57 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri May 14 15:09:29 2010 -0400"
      },
      "message": "SUNRPC: Move the test for XPRT_CONNECTING into xprt_connect()\n\nThis fixes a bug with setting xprt-\u003estat.connect_start.\n\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c9acb42ef1904d15d0fb315061cefbe638f67f3a",
      "tree": "7c94dff168dfc90a279990cb2860cce626ae76a3",
      "parents": [
        "cdead7cf12896c0e50a8be2e52de52c364603095"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 19 15:36:22 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 22 05:32:44 2010 -0400"
      },
      "message": "SUNRPC: Fix a use after free bug with the NFSv4.1 backchannel\n\nThe -\u003erelease_request() callback was designed to allow the transport layer\nto do housekeeping after the RPC call is done. It cannot be used to free\nthe request itself, and doing so leads to a use-after-free bug in\nxprt_release().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7c34691abe23741bfc7d2514efd5a39f0e0ecb06",
      "tree": "f5c673eda066f4d7870d502d52d705b629eb8c03",
      "parents": [
        "5f87e54d7d6f58e8f15819cf8901860d9512e8b4",
        "cfbc0683af235106e7dabe92003870b82ad6f0ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:50:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:50:09 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: ensure bdi_unregister is called on mount failure.\n  NFS: Avoid a deadlock in nfs_release_page\n  NFSv4: Don\u0027t ignore the NFS_INO_REVAL_FORCED flag in nfs_revalidate_inode()\n  nfs4: Make the v4 callback service hidden\n  nfs: fix unlikely memory leak\n  rpc client can not deal with ENOSOCK, so translate it into ENOCONN\n"
    },
    {
      "commit": "d89b218b801fd93ea95880f1c7fde348cbcc51c5",
      "tree": "cd3c34e1811f9b2bc10ecfb957bf26cbd04c677e",
      "parents": [
        "80a186074e72e2cd61f6716d90cf32ce54981a56",
        "bec68ff1637ca00bb1585a03a7be8a13380084de"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:50:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:50:18 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (108 commits)\n  bridge: ensure to unlock in error path in br_multicast_query().\n  drivers/net/tulip/eeprom.c: fix bogus \"(null)\" in tulip init messages\n  sky2: Avoid rtnl_unlock without rtnl_lock\n  ipv6: Send netlink notification when DAD fails\n  drivers/net/tg3.c: change the field used with the TG3_FLAG_10_100_ONLY constant\n  ipconfig: Handle devices which take some time to come up.\n  mac80211: Fix memory leak in ieee80211_if_write()\n  mac80211: Fix (dynamic) power save entry\n  ipw2200: use kmalloc for large local variables\n  ath5k: read eeprom IQ calibration values correctly for G mode\n  ath5k: fix I/Q calibration (for real)\n  ath5k: fix TSF reset\n  ath5k: use fixed antenna for tx descriptors\n  libipw: split ieee-\u003enetworks into small pieces\n  mac80211: Fix sta_mtx unlocking on insert STA failure path\n  rt2x00: remove KSEG1ADDR define from rt2x00soc.h\n  net: add ColdFire support to the smc91x driver\n  asix: fix setting mac address for AX88772\n  ipv6 ip6_tunnel: eliminate unused recursion field from ip6_tnl{}.\n  net: Fix dev_mc_add()\n  ...\n"
    },
    {
      "commit": "81160e66cca3d3a16b7d88e0e2dccfc5c76f36f9",
      "tree": "4bd45b3b0870989ab742a318dd2940b94ca1f80f",
      "parents": [
        "fc0b579168cbe737c83c6b9bbfe265d3ae6baca6"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 08 12:15:59 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 08 12:15:59 2010 -0800"
      },
      "message": "net/sunrpc: Convert (void)snprintf to snprintf\n\n(Applies on top of \"Remove uses of NIPQUAD, use %pI4\")\n\nCasts to void of snprintf are most uncommon in kernel source.\n9 use casts, 1301 do not.\n\nRemove the remaining uses in net/sunrpc/\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc0b579168cbe737c83c6b9bbfe265d3ae6baca6",
      "tree": "a9818961a11c7322cb585b03859ebf497e8db62f",
      "parents": [
        "e9dcd1613f0ac0b3573b7d813a2c5672cd8302eb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 08 12:15:28 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 08 12:15:28 2010 -0800"
      },
      "message": "net/sunrpc: Remove uses of NIPQUAD, use %pI4\n\nOriginally submitted Jan 1, 2010\nhttp://patchwork.kernel.org/patch/71221/\n\nConvert NIPQUAD to the %pI4 format extension where possible\nConvert %02x%02x%02x%02x/NIPQUAD to %08x/ntohl\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5fe46e9d733f19a880ef7e516002bd4c2b833e14",
      "tree": "e63ececb8fa5100b3f2514b0d2e9702086ccd101",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176"
      ],
      "author": {
        "name": "Bian Naimeng",
        "email": "biannm@cn.fujitsu.com",
        "time": "Mon Mar 08 14:49:01 2010 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 08 14:05:57 2010 -0500"
      },
      "message": "rpc client can not deal with ENOSOCK, so translate it into ENOCONN\n\nIf NFSv4 client send a request before connect, or the old connection was broken\nbecause a ETIMEOUT error catched by call_status, -\u003esend_request will return\nENOSOCK, but rpc layer can not deal with it, so make sure -\u003esend_request can\ntranslate ENOSOCK into ENOCONN.\n\nSigned-off-by: Bian Naimeng \u003cbiannm@cn.fujitsu.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9fcfe0c83c3b04a759cde6b8c5f961237f17808b",
      "tree": "a0f80208f574745eb73f059e6d449133d5128b9f",
      "parents": [
        "0f79fd6f5c52e05918e44996b0a1b18383d0fbc2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 02 13:06:21 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 02 13:06:21 2010 -0500"
      },
      "message": "SUNRPC: Handle EINVAL error returns from the TCP connect operation\n\nThis can, for instance, happen if the user specifies a link local IPv6\naddress.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5a51f13adf7909caec2f8182767485c30e21364e",
      "tree": "1d7955951f9b863b9cb30318bbc405d0e7f7a90c",
      "parents": [
        "7a88efe9760de3bc75bde61b0a4c56dbb6cf2494"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Thu Jan 14 15:38:31 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 10 08:30:53 2010 -0500"
      },
      "message": "xprtsock.c: make bc_{malloc/free} static\n\nxprtsock.c: make bc_{malloc/free} static\n\nThe server backchannel buf_alloc and buf_free methods should\nbe static since they are not used outside this file.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52c9948b1fd80381ba5a9a87dcc4fbe3cf4979b8",
      "tree": "7bca6a20560f428442f18450df0948774f982df0",
      "parents": [
        "f40542532e96dda5506eb76badea322f2ae4731c",
        "190f38e5cedc910940b1da9015f00458c18f97b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Dec 13 13:56:27 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Dec 13 13:56:27 2009 -0500"
      },
      "message": "Merge branch \u0027nfs-for-2.6.33\u0027\n"
    },
    {
      "commit": "09a21c4102c8f7893368553273d39c0cadedf9af",
      "tree": "b0a051dbb02d48aa95383e39cc7ce6f503d6f33b",
      "parents": [
        "206a134b4d8abf57cd34dffacf993869355b9aac"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 03 15:58:56 2009 -0500"
      },
      "message": "SUNRPC: Allow RPCs to fail quickly if the server is unreachable\n\nThe kernel sometimes makes RPC calls to services that aren\u0027t running.\nBecause the kernel\u0027s RPC client always assumes the hard retry semantic\nwhen reconnecting a connection-oriented RPC transport, the underlying\nreconnect logic takes a long while to time out, even though the remote\nmay have responded immediately with ECONNREFUSED.\n\nIn certain cases, like upcalls to our local rpcbind daemon, or for NFS\nmount requests, we\u0027d like the kernel to fail immediately if the remote\nservice isn\u0027t reachable.  This allows another transport to be tried\nimmediately, or the pending request can be abandoned quickly.\n\nIntroduce a per-request flag which controls how call_transmit_status()\nbehaves when request transmission fails because the server cannot be\nreached.\n\nWe don\u0027t want soft connection semantics to apply to other errors.  The\ndefault case of the switch statement in call_transmit_status() no\nlonger falls through; the fall through code is copied to the default\ncase, and a \"break;\" is added.\n\nThe transport\u0027s connection re-establishment timeout is also ignored for\nsuch requests.  We want the request to fail immediately, so the\nreconnect delay is skipped.  Additionally, we don\u0027t want a connect\nfailure here to further increase the reconnect timeout value, since\nthis request will not be retried.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6d4561110a3e9fa742aeec6717248a491dfb1878",
      "tree": "689e2abf19940416ce597ba56ed31026ff59bd21",
      "parents": [
        "86926d0096279b9739ceeff40f68d3c33b9119a9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 16 03:11:48 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 18 08:37:40 2009 -0800"
      },
      "message": "sysctl: Drop \u0026 in front of every proc_handler.\n\nFor consistency drop \u0026 in front of every proc_handler.  Explicity\ntaking the address is unnecessary and it prevents optimizations\nlike stubbing the proc_handlers to NULL.\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "f8572d8f2a2ba75408b97dc24ef47c83671795d7",
      "tree": "052506a457939fea00d138d3a982d778df34e14c",
      "parents": [
        "86b1bc68e2f4244e4ea5db5458df9d19259fbb30"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 05 13:32:03 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:05:06 2009 -0800"
      },
      "message": "sysctl net: Remove unused binary sysctl code\n\nNow that sys_sysctl is a compatiblity wrapper around /proc/sys\nall sysctl strategy routines, and all ctl_name and strategy\nentries in the sysctl tables are unused, and can be\nrevmoed.\n\nIn addition neigh_sysctl_register has been modified to no longer\ntake a strategy argument and it\u0027s callers have been modified not\nto pass one.\n\nCc: \"David Miller\" \u003cdavem@davemloft.net\u003e\nCc: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "61d0a8e6a8049cea246ee7ec19b042d4ff1f6ef6",
      "tree": "ee84a7e5260be07af494a70076bb70202ac0428d",
      "parents": [
        "8a6e5deb8a8caa810fef2c525f5dbea2cfe04a47"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "message": "NFS/RPC: fix problems with reestablish_timeout and related code.\n\n\n[[resending with correct cc:  - \"vfs.kernel.org\" just isn\u0027t right!]]\n\nxprt-\u003ereestablish_timeout is used to cause TCP connection attempts to\nback off if the connection fails so as not to hammer the network,\nbut to still allow immediate connections when there is no reason to\nbelieve there is a problem.\n\nIt is not used for the first connection (when transport-\u003esock is NULL)\nbut only on reconnects.\n\nIt is currently set:\n\n a/ to 0 when xs_tcp_state_change finds a state of TCP_FIN_WAIT1\n    on the assumption that the client has closed the connection\n    so the reconnect should be immediate when needed.\n b/ to at least XS_TCP_INIT_REEST_TO when xs_tcp_state_change\n    detects TCP_CLOSING or TCP_CLOSE_WAIT on the assumption that the\n    server closed the connection so a small delay at least is\n    required.\n c/ as above when xs_tcp_state_change detects TCP_SYN_SENT, so that\n    it is never 0 while a connection has been attempted, else\n    the doubling will produce 0 and there will be no backoff.\n d/ to double is value (up to a limit) when delaying a connection,\n    thus providing exponential backoff and\n e/ to XS_TCP_INIT_REEST_TO in xs_setup_tcp as simple initialisation.\n\nSo you can see it is highly dependant on xs_tcp_state_change being\ncalled as expected.  However experimental evidence shows that\nxs_tcp_state_change does not see all state changes.\n(\"rpcdebug -m rpc trans\" can help show what actually happens).\n\nResults show:\n TCP_ESTABLISHED is reported when a connection is made.  TCP_SYN_SENT\n is never reported, so rule \u0027c\u0027 above is never effective.\n\n When the server closes the connection, TCP_CLOSE_WAIT and\n TCP_LAST_ACK *might* be reported, and TCP_CLOSE is always\n reported.  This rule \u0027b\u0027 above will sometimes be effective, but\n not reliably.\n\n When the client closes the connection, it used to result in\n TCP_FIN_WAIT1, TCP_FIN_WAIT2, TCP_CLOSE.  However since commit\n f75e674 (SUNRPC: Fix the problem of EADDRNOTAVAIL syslog floods on\n reconnect) we don\u0027t see *any* events on client-close.  I think this\n is because xs_restore_old_callbacks is called to disconnect\n xs_tcp_state_change before the socket is closed.\n In any case, rule \u0027a\u0027 no longer applies.\n\nSo all that is left are rule d, which successfully doubles the\ntimeout which is never rest, and rule e which initialises the timeout.\n\nEven if the rules worked as expected, there would be a problem because\na successful connection does not reset the timeout, so a sequence\nof events where the server closes the connection (e.g. during failover\ntesting) will cause longer and longer timeouts with no good reason.\n\nThis patch:\n\n - sets reestablish_timeout to 0 in xs_close thus effecting rule \u0027a\u0027\n - sets it to 0 in xs_tcp_data_ready to ensure that a successful\n   connection resets the timeout\n - sets it to at least XS_TCP_INIT_REEST_TO after it is doubled,\n   thus effecting rule c\n\nI have not reimplemented rule b and the new version of rule c\nseems sufficient.\n\nI suspect other code in xs_tcp_data_ready needs to be revised as well.\nFor example I don\u0027t think connect_cookie is being incremented as often\nas it should be.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f300baba5a1536070d6d77bf0c8c4ca999bb4f0f",
      "tree": "648d0020d9a9325cfcb07571d9f11a5c797ee900",
      "parents": [
        "908329f2c08b8b5af7b394f709b0ee9c43b93041"
      ],
      "author": {
        "name": "Alexandros Batsakis",
        "email": "batsakis@netapp.com",
        "time": "Thu Sep 10 17:33:30 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Sep 13 15:46:15 2009 -0400"
      },
      "message": "nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n\n[sunrpc: change idle timeout value for the backchannel]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4cfc7e6019caa3e97d2a81c48c8d575d7b38d751",
      "tree": "8dced61360d385b115da94f9a4fd5f8d635c296d",
      "parents": [
        "6951867b9967066eda090f46ad91ce69e0ead611"
      ],
      "author": {
        "name": "Rahul Iyer",
        "email": "iyer@netapp.com",
        "time": "Thu Sep 10 17:32:28 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Sep 11 15:04:16 2009 -0400"
      },
      "message": "nfsd41: sunrpc: Added rpc server-side backchannel handling\n\nWhen the call direction is a reply, copy the xid and call direction into the\nreq-\u003erq_private_buf.head[0].iov_base otherwise rpc_verify_header returns\nrpc_garbage.\n\nSigned-off-by: Rahul Iyer \u003ciyer@netapp.com\u003e\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[get rid of CONFIG_NFSD_V4_1]\n[sunrpc: refactoring of svc_tcp_recvfrom]\n[nfsd41: sunrpc: create common send routine for the fore and the back channels]\n[nfsd41: sunrpc: Use free_page() to free server backchannel pages]\n[nfsd41: sunrpc: Document server backchannel locking]\n[nfsd41: sunrpc: remove bc_connect_worker()]\n[nfsd41: sunrpc: Define xprt_server_backchannel()[\n[nfsd41: sunrpc: remove bc_close and bc_init_auto_disconnect dummy functions]\n[nfsd41: sunrpc: eliminate unneeded switch statement in xs_setup_tcp()]\n[nfsd41: sunrpc: Don\u0027t auto close the server backchannel connection]\n[nfsd41: sunrpc: Remove unused functions]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: change bc_sock to bc_xprt]\n[nfsd41: sunrpc: move struct rpc_buffer def into a common header file]\n[nfsd41: sunrpc: use rpc_sleep in bc_send_request so not to block on mutex]\n[removed cosmetic changes]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[sunrpc: add new xprt class for nfsv4.1 backchannel]\n[sunrpc: v2.1 change handling of auto_close and init_auto_disconnect operations for the nfsv4.1 backchannel]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\n[reverted more cosmetic leftovers]\n[got rid of xprt_server_backchannel]\n[separated \"nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@netapp.com\u003e\n[sunrpc: change idle timeout value for the backchannel]\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "976a6f921cad26651d25e73826c05c7a023f5fa4",
      "tree": "b06e283e3fe342bcf444328390b211bb155fd9dc",
      "parents": [
        "e576e05a73bc1a00cdf56630942dbada1bf280a1",
        "c05988cdb06237738d361ef82fbf4df1020aa3db"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:50 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:50 2009 -0400"
      },
      "message": "Merge branch \u0027patches_cel-for-2.6.32\u0027 into nfs-for-2.6.32\n"
    },
    {
      "commit": "9dc3b095b78347bfb02c324b5ee2e558f7267396",
      "tree": "8c9d43d43db5a130506d31293858cb65e73643d1",
      "parents": [
        "c740eff84bcfd63c0497ef880e80171931cb8222"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "message": "SUNRPC: Update xprt address strings after an rpcbind completes\n\nAfter a bind completes, update the transport instance\u0027s address\nstrings so debugging messages display the current port the transport\nis connected to.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c740eff84bcfd63c0497ef880e80171931cb8222",
      "tree": "a990bca471ca6334172787a17c6b9c833e48d682",
      "parents": [
        "fbfffbd5e74c5fa8c9165e110cb5899ec21e6364"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "message": "SUNRPC: Kill RPC_DISPLAY_ALL\n\nAt some point, I recall that rpc_pipe_fs used RPC_DISPLAY_ALL.\nCurrently there are no uses of RPC_DISPLAY_ALL outside the transport\nmodules themselves, so we can safely get rid of it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fbfffbd5e74c5fa8c9165e110cb5899ec21e6364",
      "tree": "85d4c8a589e9796fe0b347b021db0a19d499b81d",
      "parents": [
        "f8b761eff1e49fde43dd940ac32b38cf7cee2a95"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:46 2009 -0400"
      },
      "message": "SUNRPC: Rename sock_xprt.addr as sock_xprt.srcaddr\n\nClean up: Give the \"addr\" and \"port\" field less ambiguous names.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c877b849d302d1275452af80b7221a2555dc02e1",
      "tree": "7baf4099cbb235e9ee4d420f61208d10ecdc8c4d",
      "parents": [
        "ba809130bc260fce04141aca01ef9e068d32af2a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:36 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:36 2009 -0400"
      },
      "message": "SUNRPC: Use rpc_ntop() for constructing transport address strings\n\nClean up:  In addition to using the new generic rpc_ntop() and\nrpc_get_port() functions, have the RPC client compute the presentation\naddress buffer sizes dynamically using kstrdup().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba809130bc260fce04141aca01ef9e068d32af2a",
      "tree": "8aa5fe3f46c679346120f2c28848bf4446133a4c",
      "parents": [
        "a02d692611348f11ee1bc37431a883c3ff2de23e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:35 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:35 2009 -0400"
      },
      "message": "SUNRPC: Remove duplicate universal address generation\n\nRPC universal address generation is currently done in several places:\nrpcb_clnt.c, nfs4proc.c xprtsock.c, and xprtrdma.c.  Remove the\nredundant cases that convert a socket address to a universal\naddress.  The nfs4proc.c case takes a pre-formatted presentation\naddress string, not a socket address, so we\u0027ll leave that one.\n\nBecause the new uaddr constructor uses the recently introduced\nrpc_ntop(), it now supports proper \"::\" shorthanding for IPv6\naddresses.  This allows the kernel to register properly formed\nuniversal addresses with the local rpcbind service, in _all_ cases.\n\nThe kernel can now also send properly formed universal addresses in\nRPCB_GETADDR requests, and support link-local properly when\nencoding and decoding IPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cbf1107126af2950623fafdaa5c9df43ab00f046",
      "tree": "101e9a26fc86218f567e5c99aad3ddadfdab2691",
      "parents": [
        "80e52aced138bb41b045a8595a87510f27d8d8c5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "SUNRPC: convert some sysctls into module parameters\n\nParameters like the minimum reserved port, and the number of slot entries\nshould really be module parameters rather than sysctls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81",
      "tree": "143956f878290e85de7c9130f465e862f587ee53",
      "parents": [
        "301933a0acfdec837fd8b4884093b3f0fff01d8a",
        "4bf259e3ae5015e73282ba66716c4a917e1264ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:13:00 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 18 18:13:44 2009 -0700"
      },
      "message": "Merge branch \u0027devel-for-2.6.31\u0027 into for-2.6.31\n\nConflicts:\n\tfs/nfs/client.c\n\tfs/nfs/super.c\n"
    },
    {
      "commit": "301933a0acfdec837fd8b4884093b3f0fff01d8a",
      "tree": "1f2412a30d710493179b1b3743cf30302872df15",
      "parents": [
        "3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8",
        "68f3f90133d56e0c38f04f991e662c2b21592b31"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 17:59:58 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 17:59:58 2009 -0700"
      },
      "message": "Merge commit \u0027linux-pnfs/nfs41-for-2.6.31\u0027 into nfsv41-for-2.6.31\n"
    },
    {
      "commit": "0d90ba1cd416525c4825c111db862d8b15a02e9b",
      "tree": "1f1571410b2d1b17eb8e503fc3b60450f93e9dee",
      "parents": [
        "55ae1aabfb108106dd095de2578ceef1c755a8b8"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:04 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 14:11:28 2009 -0700"
      },
      "message": "nfs41: Backchannel callback service helper routines\n\nExecutes the backchannel task on the RPC state machine using\nthe existing open connection previously established by the client.\n\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\n\nnfs41: Add bc_svc.o to sunrpc Makefile.\n\n[nfs41: bc_send() does not need to be exported outside RPC module]\n[nfs41: xprt_free_bc_request() need not be exported outside RPC module]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Update copyright]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "88b5ed73bcd0f21e008b6e303a02c8b7cb1199f4",
      "tree": "efe474f18f8c175b3bfc04f31e8723ed376cc804",
      "parents": [
        "3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:57 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 13:22:57 2009 -0700"
      },
      "message": "SUNRPC: Fix a missing \"break\" option in xs_tcp_setup_socket()\n\nIn the case of -EADDRNOTAVAIL and/or unhandled connection errors, we want\nto get rid of the existing socket and retry immediately, just as the\ncomment says. Currently we end up sleeping for a minute, due to the missing\n\"break\" statement.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44b98efdd0a205bdca2cb63493350d06ff6804b1",
      "tree": "d375e3a8a6084672f15e9b12bec082613448340e",
      "parents": [
        "4a8d70bfef01f8e6b27785e2625e88e9a80924a5"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:23:02 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 13:06:16 2009 -0700"
      },
      "message": "nfs41: New xs_tcp_read_data()\n\nHandles RPC replies and backchannel callbacks.  Traditionally the NFS\nclient has expected only RPC replies on its open connections.  With\nNFSv4.1, callbacks can arrive over an existing open connection.\n\nThis patch refactors the old xs_tcp_read_request() into an RPC reply handler:\nxs_tcp_read_reply(), a new backchannel callback handler: xs_tcp_read_callback(),\nand a common routine to read the data off the transport: xs_tcp_read_common().\nThe new xs_tcp_read_callback() queues callback requests onto a queue where\nthe callback service (a separate thread) is listening for the processing.\n\nThis patch incorporates work and suggestions from Rahul Iyer (iyer@netapp.com)\nand Benny Halevy (bhalevy@panasas.com).\n\nxs_tcp_read_callback() drops the connection when the number of expected\ncallbacks is exceeded.  Use xprt_force_disconnect(), ensuring tasks on\nthe pending queue are awaken on disconnect.\n\n[nfs41: Keep track of RPC call/reply direction with a flag]\n[nfs41: Preallocate rpc_rqst receive buffer for handling callbacks]\nSigned-off-by: Ricardo Labiaga \u003cricardo.labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: sunrpc: xs_tcp_read_callback() should use xprt_force_disconnect()]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Moves embedded #ifdefs into #ifdef function blocks]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "f4a2e418bfd03a1f25f515e8a92ecd584d96cfc1",
      "tree": "31ea603214b4c68c338af9373b85eedfe0c11275",
      "parents": [
        "18dca02aeb3c49dfce87c76be643b139d05cf647"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:22:54 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:43:46 2009 -0700"
      },
      "message": "nfs41: Process the RPC call direction\n\nReading and storing the RPC direction is a three step process.\n\n1. xs_tcp_read_calldir() reads the RPC direction, but it will not store it\nin the XDR buffer since the \u0027struct rpc_rqst\u0027 is not yet available.\n\n2. The \u0027struct rpc_rqst\u0027 is obtained during the TCP_RCV_COPY_DATA state.\nThis state need not necessarily be preceeded by the TCP_RCV_READ_CALLDIR.\nFor example, we may be reading a continuation packet to a large reply.\nTherefore, we can\u0027t simply obtain the \u0027struct rpc_rqst\u0027 during the\nTCP_RCV_READ_CALLDIR state and assume it\u0027s available during TCP_RCV_COPY_DATA.\n\nThis patch adds a new TCP_RCV_READ_CALLDIR flag to indicate the need to\nread the RPC direction.  It then uses TCP_RCV_COPY_CALLDIR to indicate the\nRPC direction needs to be saved after the \u0027struct rpc_rqst\u0027 has been allocated.\n\n3. The \u0027struct rpc_rqst\u0027 is obtained by the xs_tcp_read_data() helper\nfunctions.  xs_tcp_read_common() then saves the RPC direction in the XDR\nbuffer if TCP_RCV_COPY_CALLDIR is set.  This will happen when we\u0027re reading\nthe data immediately after the direction was read.  xs_tcp_read_common()\nthen clears this flag.\n\n[was nfs41: Skip past the RPC call direction]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: sunrpc: Add RPC direction back into the XDR buffer]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: sunrpc: Don\u0027t skip past the RPC call direction]\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "18dca02aeb3c49dfce87c76be643b139d05cf647",
      "tree": "3e261efdba69b967500a36d8f65ac643c8693d76",
      "parents": [
        "34dc1ad752ad3f55b2a6e6cd8cfcf3504682fec7"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Apr 01 09:22:53 2009 -0400"
      },
      "committer": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jun 17 12:43:45 2009 -0700"
      },
      "message": "nfs41: Add ability to read RPC call direction on TCP stream.\n\nNFSv4.1 callbacks can arrive over an existing connection. This patch adds\nthe logic to read the RPC call direction (call or reply). It does this by\nupdating the state machine to look for the call direction invoking\nxs_tcp_read_calldir(...) after reading the XID.\n\n[nfs41: Keep track of RPC call/reply direction with a flag]\n\nAs per 11/14/08 review of RFC 53/85.\n\nAdd a new flag to track whether the incoming message is an RPC call or an\nRPC reply.  TCP_RPC_REPLY is set in the \u0027struct sock_xprt\u0027 tcp_flags in\nxs_tcp_read_calldir() if the message is an RPC reply sent on the forechannel.\nIt is cleared if the message is an RPC request sent on the back channel.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f75e6745aa3084124ae1434fd7629853bdaf6798",
      "tree": "bfd605c079e8a1dd6ad008acc6031441c220c845",
      "parents": [
        "414772fa496273d1a93cefa6dab790f5fdf9de82"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 21 17:18:20 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:35:08 2009 -0700"
      },
      "message": "SUNRPC: Fix the problem of EADDRNOTAVAIL syslog floods on reconnect\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d13034\n\nIf the port gets into a TIME_WAIT state, then we cannot reconnect without\nbinding to a new port.\n\nTested-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nTested-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc85906110e26fe8537c3bdbc08a74ae8110030b",
      "tree": "891813098ede3dba4d5ff3b83b1f7b491367ad2f",
      "parents": [
        "c09bca786ff941ed17c5f381c4eca5b106808c51",
        "c69da774b28e01e062e0a3aba7509f2dcfd2a11a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into for-linus\n"
    },
    {
      "commit": "08abe18af1f78ee80c3c3a5ac47c3e0ae0beadf6",
      "tree": "2be39bf8942edca1bcec735145e144a682ca9cd3",
      "parents": [
        "f0de70f8bb56952f6e016a65a8a8d006918f5bf6",
        "0384e2959127a56d0640505d004d8dd92f9c29f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/wimax/i2400m/usb-notif.c\n"
    },
    {
      "commit": "55420c24a0d4d1fce70ca713f84aa00b6b74a70e",
      "tree": "9e7e931122cb77e7ae1249b6dde81d83f60a894d",
      "parents": [
        "b61d59fffd3e5b6037c92b4c840605831de8a251"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 15:29:24 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:36 2009 -0400"
      },
      "message": "SUNRPC: Ensure we close the socket on EPIPE errors too...\n\nAs long as one task is holding the socket lock, then calls to\nxprt_force_disconnect(xprt) will not succeed in shutting down the socket.\nIn particular, this would mean that a server initiated shutdown will not\nsucceed until the lock is relinquished.\nIn order to avoid the deadlock, we should ensure that xs_tcp_send_request()\ncloses the socket on EPIPE errors too.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b61d59fffd3e5b6037c92b4c840605831de8a251",
      "tree": "329bfecb1c8c66364e7b2797c51eab779ee2540d",
      "parents": [
        "25fe6142a57c720452c5e9ddbc1f32309c1e5c19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:04 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:35 2009 -0400"
      },
      "message": "SUNRPC: xs_tcp_connect_worker{4,6}: merge common code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "25fe6142a57c720452c5e9ddbc1f32309c1e5c19",
      "tree": "54ace9992e13ff9d3644bbb98ec8b74baf22b241",
      "parents": [
        "7d1e8255cf959fba7ee2317550dfde39f0b936ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:34 2009 -0400"
      },
      "message": "SUNRPC: Add a sysctl to control the duration of the socket linger timeout\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d1e8255cf959fba7ee2317550dfde39f0b936ae",
      "tree": "0a046b83e5ac29501849c34408059480d4c210be",
      "parents": [
        "5e3771ce2d6a69e10fcc870cdf226d121d868491"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:34 2009 -0400"
      },
      "message": "SUNRPC: Add the equivalent of the linger and linger2 timeouts to RPC sockets\n\nThis fixes a regression against FreeBSD servers as reported by Tomas\nKasparek. Apparently when using RPC over a TCP socket, the FreeBSD servers\ndon\u0027t ever react to the client closing the socket, and so commit\ne06799f958bf7f9f8fae15f0c6f519953fb0257c (SUNRPC: Use shutdown() instead of\nclose() when disconnecting a TCP socket) causes the setup to hang forever\nwhenever the client attempts to close and then reconnect.\n\nWe break the deadlock by adding a \u0027linger2\u0027 style timeout to the socket,\nafter which, the client will abort the connection using a TCP \u0027RST\u0027.\n\nThe default timeout is set to 15 seconds. A subsequent patch will put it\nunder user control by means of a systctl.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5e3771ce2d6a69e10fcc870cdf226d121d868491",
      "tree": "3c20ee45ae8b87621ae95cedb6b385bf0e6d7a2f",
      "parents": [
        "8a2cec295f4499cc9d4452e9b02d4ed071bb42d3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "message": "SUNRPC: Ensure that xs_nospace return values are propagated\n\nIf xs_nospace() finds that the socket has disconnected, it attempts to\nreturn ENOTCONN, however that value is then squashed by the callers.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a2cec295f4499cc9d4452e9b02d4ed071bb42d3",
      "tree": "148f1658cb923a2faafdb1e993dd63832c860eb1",
      "parents": [
        "2a4919919a97911b0aa4b9f5ac1eab90ba87652b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "message": "SUNRPC: Delay, then retry on connection errors.\n\nEnforce the comment in xs_tcp_connect_worker4/xs_tcp_connect_worker6 that\nwe should delay, then retry on certain connection errors.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2a4919919a97911b0aa4b9f5ac1eab90ba87652b",
      "tree": "c12eb42c34f0d0b79130ae93ebd56159e8366ee8",
      "parents": [
        "482f32e65d31cbf88d08306fa5d397cc945c3c26"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "message": "SUNRPC: Return EAGAIN instead of ENOTCONN when waking up xprt-\u003epending\n\nWhile we should definitely return socket errors to the task that is\ncurrently trying to send data, there is no need to propagate the same error\nto all the other tasks on xprt-\u003epending. Doing so actually slows down\nrecovery, since it causes more than one tasks to attempt socket recovery.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "482f32e65d31cbf88d08306fa5d397cc945c3c26",
      "tree": "e0a8adf7925ecfce413506b68d67a94f6c1b1131",
      "parents": [
        "c8485e4d634f6df155040293928707f127f0d06d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "message": "SUNRPC: Handle socket errors correctly\n\nEnsure that we pick up and handle socket errors as they occur.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c8485e4d634f6df155040293928707f127f0d06d",
      "tree": "72ec8a7ea829e4f7df4648e646353c55a037e50e",
      "parents": [
        "40d2549db5f515e415894def98b49db7d4c56714"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:59 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:59 2009 -0400"
      },
      "message": "SUNRPC: Handle ECONNREFUSED correctly in xprt_transmit()\n\nIf we get an ECONNREFUSED error, we currently go to sleep on the\n\u0027xprt-\u003esending\u0027 wait queue. The problem is that no timeout is set there,\nand there is nothing else that will wake the task up later.\n\nWe should deal with ECONNREFUSED in call_status, given that is where we\nalso deal with -EHOSTDOWN, and friends.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40d2549db5f515e415894def98b49db7d4c56714",
      "tree": "6c301c61cd3a9215bf39deee53623e1fd97a895f",
      "parents": [
        "670f94573104b4a25525d3fcdcd6496c678df172"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "message": "SUNRPC: Don\u0027t disconnect if a connection is still in progress.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "670f94573104b4a25525d3fcdcd6496c678df172",
      "tree": "3beaadb8ee2841972c0e719c67c64e1cc27bb7ea",
      "parents": [
        "15f081ca8ddfe150fb639c591b18944a539da0fc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "message": "SUNRPC: Ensure we set XPRT_CLOSING only after we\u0027ve sent a tcp FIN...\n\n...so that we can distinguish between when we need to shutdown and when we\ndon\u0027t. Also remove the call to xs_tcp_shutdown() from xs_tcp_connect(),\nsince xprt_connect() makes the same test.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe315e76fc3a3f9f7e1581dc22fec7e7719f0896",
      "tree": "15ba17ab92691d55f3e3168df8fef2fb366339c0",
      "parents": [
        "01d37c428ae080563c0a3bb8bdfa88c65a6891d3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 11 14:10:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:21 2009 -0400"
      },
      "message": "SUNRPC: Avoid spurious wake-up during UDP connect processing\n\nTo clear out old state, the UDP connect workers unconditionally invoke\nxs_close() before proceeding with a new connect.  Nowadays this causes\na spurious wake-up of the task waiting for the connect to complete.\n\nThis is a little racey, but usually harmless.  The waiting task\nimmediately retries the connect via a call_bind/call_connect sequence,\nwhich usually finds the transport already in the connected state\nbecause the connect worker has finished in the background.\n\nTo avoid a spurious wake-up, factor the xs_close() logic that resets\nthe underlying socket into a helper, and have the UDP connect workers\ncall that helper instead of xs_close().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01d37c428ae080563c0a3bb8bdfa88c65a6891d3",
      "tree": "bfc1c9a6336d4b7058c742d4a3178f8f588f5b66",
      "parents": [
        "fba91afbec2c004e2c8733ae9e0ca6998e962c64"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:09:39 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:09:39 2009 -0400"
      },
      "message": "SUNRPC: xprt_connect() don\u0027t abort the task if the transport isn\u0027t bound\n\nIf the transport isn\u0027t bound, then we should just return ENOTCONN, letting\ncall_connect_status() and/or call_status() deal with retrying. Currently,\nwe appear to abort all pending tasks with an EIO error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fba91afbec2c004e2c8733ae9e0ca6998e962c64",
      "tree": "025d7c07b8d41d4e5752fb9da7396a0b596856da",
      "parents": [
        "d7371c41b0cda782256b1df759df4e8d4724584c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:06:41 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:06:41 2009 -0400"
      },
      "message": "SUNRPC: Fix an Oops due to socket not set up yet...\n\nWe can Oops in both xs_udp_send_request() and xs_tcp_send_request() if the\ncall to xs_sendpages() returns an error due to the socket not yet being\nset up.\nDeal with that situation by returning a new error: ENOTSOCK, so that we\nknow to avoid dereferencing transport-\u003esock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f0fa15432e49547c3fa915644c7e0c0975809e7",
      "tree": "45939f63baea1e1aafeaa3872c99e82252313791",
      "parents": [
        "b5f348e5a41b39543c1c5efd661d7fd296dd5281"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Feb 06 23:48:33 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 06 23:48:33 2009 -0800"
      },
      "message": "net/sunrpc/xprtsock.c: some common code found\n\n$ diff-funcs xs_udp_write_space net/sunrpc/xprtsock.c\nnet/sunrpc/xprtsock.c xs_tcp_write_space\n --- net/sunrpc/xprtsock.c:xs_udp_write_space()\n +++ net/sunrpc/xprtsock.c:xs_tcp_write_space()\n@@ -1,4 +1,4 @@\n- * xs_udp_write_space - callback invoked when socket buffer space\n+ * xs_tcp_write_space - callback invoked when socket buffer space\n  *                             becomes available\n  * @sk: socket whose state has changed\n  *\n@@ -7,12 +7,12 @@\n  * progress, otherwise we\u0027ll waste resources thrashing kernel_sendmsg\n  * with a bunch of small requests.\n  */\n-static void xs_udp_write_space(struct sock *sk)\n+static void xs_tcp_write_space(struct sock *sk)\n {\n \tread_lock(\u0026sk-\u003esk_callback_lock);\n\n-\t/* from net/core/sock.c:sock_def_write_space */\n-\tif (sock_writeable(sk)) {\n+\t/* from net/core/stream.c:sk_stream_write_space */\n+\tif (sk_stream_wspace(sk) \u003e\u003d sk_stream_min_wspace(sk)) {\n \t\tstruct socket *sock;\n \t\tstruct rpc_xprt *xprt;\n\n\n$ codiff net/sunrpc/xprtsock.o net/sunrpc/xprtsock.o.new\nnet/sunrpc/xprtsock.c:\n  xs_tcp_write_space | -163\n  xs_udp_write_space | -163\n 2 functions changed, 326 bytes removed\n\nnet/sunrpc/xprtsock.c:\n  xs_write_space | +179\n 1 function changed, 179 bytes added\n\nnet/sunrpc/xprtsock.o.new:\n 3 functions changed, 179 bytes added, 326 bytes removed, diff: -147\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e0db4a786bbd73145b4feb45c75d49b6e60fe72c",
      "tree": "0362cd69006902a79b077864164aa892016c1479",
      "parents": [
        "20971a0afb8bc0eeb6865ceadd435e4a2dba0fd7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 02 23:57:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 02 23:57:06 2008 -0800"
      },
      "message": "sunrpc: Fix build warning due to typo in %pI4 format changes.\n\nNoticed by Stephen Hemminger.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21454aaad30651ba0dcc16fe5271bc12ee21f132",
      "tree": "eb525494d6f80a0e855840bc588ae1f422348b04",
      "parents": [
        "14d5e834f6b36667c7da56374645f99b6cf30814"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 31 00:54:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:54:56 2008 -0700"
      },
      "message": "net: replace NIPQUAD() in net/*/\n\nUsing NIPQUAD() with NIPQUAD_FMT, %d.%d.%d.%d or %u.%u.%u.%u\ncan be replaced with %pI4\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1744d3bee19d3b9cbfb825ab316a101b9c9f109",
      "tree": "c0e2324c09beca0eb5782eb5abf241ea2b7a4a11",
      "parents": [
        "275f165fa970174f8a98205529750e8abb6c0a33",
        "a432226614c5616e3cfd211e0acffa0acfb4770c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:17:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 31 00:17:34 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/wireless/p54/p54common.c\n"
    },
    {
      "commit": "5b095d98928fdb9e3b75be20a54b7a6cbf6ca9ad",
      "tree": "b6caa0cdbaac016447a790881ad4a6c5dfce6900",
      "parents": [
        "4b7a4274ca63dadd9c4f17fc953f3a5d19855c4c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 29 12:52:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 29 12:52:50 2008 -0700"
      },
      "message": "net: replace %p6 with %pI6\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b7a4274ca63dadd9c4f17fc953f3a5d19855c4c",
      "tree": "946d6cef596756a95afe0cea51f5c3c9be4c3353",
      "parents": [
        "4aa996066ffc0dba24036c961ee38dfdfbfc061c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 29 12:50:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 29 12:50:24 2008 -0700"
      },
      "message": "net: replace %#p6 format specifier with %pi6\n\ngcc warns when using the # modifier with the %p format specifier,\nso we can\u0027t use this to omit the colons when needed, introduces\n%pi6 instead.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fdb46ee752ed05c94bac71fe3decdb5175ec6e1f",
      "tree": "903aa4ba2c7afc996e9ddd3304e64770db830f7d",
      "parents": [
        "0c6ce78abf6e228d44c3840edb8a4ae0c1299825"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Oct 28 16:10:17 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 23:02:32 2008 -0700"
      },
      "message": "net, misc: replace uses of NIP6_FMT with %p6\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b071195deba14b37ce896c26f20349b46e5f9fd2",
      "tree": "5f32ddc71be0a282765349301ea9173b413cdc39",
      "parents": [
        "689afa7da106032a3e859ae35494f80dd6eac640"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Oct 28 16:05:40 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 28 16:05:40 2008 -0700"
      },
      "message": "net: replace all current users of NIP6_SEQFMT with %#p6\n\nThe define in kernel.h can be done away with at a later time.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a9e1cfa23fb62da37739af81127dab5af095d99",
      "tree": "3fdb86f69ea598163f7096e1f85fd8f5c86bb896",
      "parents": [
        "e946217e4fdaa67681bbabfa8e6b18641921f750"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 28 15:21:39 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 28 15:21:39 2008 -0400"
      },
      "message": "SUNRPC: Respond promptly to server TCP resets\n\nIf the server sends us an RST error while we\u0027re in the TCP_ESTABLISHED\nstate, then that will not result in a state change, and so the RPC client\nends up hanging forever (see\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11154)\n\nWe can intercept the reset by setting up an sk-\u003esk_error_report callback,\nwhich will then allow us to initiate a proper shutdown and retry...\n\nWe also make sure that if the send request receives an ECONNRESET, then we\nshutdown too...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "113aa838ec3a235d883f8357d31d90e16c47fc89",
      "tree": "4e25254fb0402aea01074244879f574e213a9f31",
      "parents": [
        "510149e31974fdbb2c00c9bee6c0e2a688e61c85"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Oct 13 19:01:08 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 13 19:01:08 2008 -0700"
      },
      "message": "net: Rationalise email address: Network Specific Parts\n\nClean up the various different email addresses of mine listed in the code\nto a single current and valid address. As Dave says his network merges\nfor 2.6.28 are now done this seems a good point to send them in where\nthey won\u0027t risk disrupting real changes.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b22602a673b1743bba4b62bb404ffd3b269d2f09",
      "tree": "70bb9bd6a6dd3339dbd3729ff70cbeab2a050ad5",
      "parents": [
        "659bfcd6dd88919a5ad453f62afbeffcb3106847"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jun 06 13:22:25 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:15 2008 -0400"
      },
      "message": "SUNRPC: Ensure all transports set rq_xtime consistently\n\nThe RPC client uses the rq_xtime field in each RPC request to determine the\nround-trip time of the request.  Currently, the rq_xtime field is\ninitialized by each transport just before it starts enqueing a request to\nbe sent.  However, transports do not handle initializing this value\nconsistently; sometimes they don\u0027t initialize it at all.\n\nTo make the measurement of request round-trip time consistent for all\nRPC client transport capabilities, pull rq_xtime initialization into the\nRPC client\u0027s generic transport logic.  Now all transports will get a\nstandardized RTT measure automatically, from:\n\n  xprt_transmit()\n\nto\n\n  xprt_complete_rqst()\n\nThis makes round-trip time calculation more accurate for the TCP transport.\nThe socket -\u003esendmsg() method can return \"-EAGAIN\" if the socket\u0027s output\nbuffer is full, so the TCP transport\u0027s -\u003esend_request() method may call\nthe -\u003esendmsg() method repeatedly until it gets all of the request\u0027s bytes\nqueued in the socket\u0027s buffer.\n\nCurrently, the TCP transport sets the rq_xtime field every time through\nthat loop so the final value is the timestamp just before the *last* call\nto the underlying socket\u0027s -\u003esendmsg() method.  After this patch, the\nrq_xtime field contains a timestamp that reflects the time just before the\n*first* call to -\u003esendmsg().\n\nThis is consequential under heavy workloads because large requests often\ntake multiple -\u003esendmsg() calls to get all the bytes of a request queued.\nThe TCP transport causes the request to sleep until the remote end of the\nsocket has received enough bytes to clear space in the socket\u0027s local\noutput buffer.  This delay can be quite significant.\n\nThe method introduced by this patch is a more accurate measure of RTT\nfor stream transports, since the server can cause enough back pressure\nto delay (ie increase the latency of) requests from the client.\n\nAdditionally, this patch corrects the behavior of the RDMA transport, which\nentirely neglected to initialize the rq_xtime field.  RPC performance\nmetrics for RDMA transports now display correct RPC request round trip\ntimes.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nAcked-by: Tom Talpey \u003cthomas.talpey@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\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": "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": "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": "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": "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": "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": "33e01dc7f578813cda074ceaeaf68b0f3ffcc393",
      "tree": "a1a84d98ae900b8960bd59742f1e2b767e7cb4f8",
      "parents": [
        "c0e07cb68db353c0ffbb0f82401cf6d79c253aed"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 14 12:32:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:08 2008 -0500"
      },
      "message": "SUNRPC: Clean up functions that free address_strings array\n\nClean up: document the rule (kfree) and the exceptions\n(RPC_DISPLAY_PROTO and RPC_DISPLAY_NETID) when freeing the objects in\na transport\u0027s address_strings array.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b454ae906085cf7774fb4756746680c9b03b6f84",
      "tree": "c5f84a9524dd7a9c7470ef0782e2d79df94d3f5e",
      "parents": [
        "cab6fc1b77c3ec4471d7d54ff6db9ad2dd59c2f5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jan 07 18:34:48 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:04 2008 -0500"
      },
      "message": "SUNRPC: fewer conditionals in the format_ip_address routines\n\nClean up: have the set up routines explicitly pass the strings to be used\nfor the transport name and NETID.  This removes a number of conditionals\nand dependencies on rpc_xprt.prot, which is overloaded.\n\nTighten up type checking on the address_strings array while we\u0027re at it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba7392bb37cb12781890f45d7ddee1618e33a036",
      "tree": "4c9a6cb3b22cae407f810c214275ab107ee3fc77",
      "parents": [
        "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:55 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "SUNRPC: Add support for per-client timeout values\n\nIn order to be able to support setting the timeo and retrans parameters on\na per-mountpoint basis, we move the rpc_timeout structure into the\nrpc_clnt.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2881ae74e68ecfe3b32a90936e5d93a9ba598c3a",
      "tree": "d454fdf3b5da159935ca268648d45b5d1a29027d",
      "parents": [
        "698b6d088e8a5d907596c689d5ae9109611c5b59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:54 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:58 2008 -0500"
      },
      "message": "SUNRPC: Clean up the transport timeout initialisation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "663b8858dddbc8e634476960cc1c5f69dadba9b0",
      "tree": "9e6b9408cd9483dea7553bd8eba58fa449ec9d85",
      "parents": [
        "62da3b24880bccd4ffc32cf8d9a7e23fab475bdd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 01 18:42:12 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:27 2008 -0500"
      },
      "message": "SUNRPC: Reconnect immediately whenever the server isn\u0027t refusing it.\n\nIf we\u0027ve disconnected from the server, rather than the other way round,\nthen it makes little sense to wait 3 seconds before reconnecting.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62da3b24880bccd4ffc32cf8d9a7e23fab475bdd",
      "tree": "334804c6eb817bd7827f58dbe86ced455160052d",
      "parents": [
        "3ebb067d92ebe5bcfd282acf12bade891d334d07"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 18:44:20 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:27 2008 -0500"
      },
      "message": "SUNRPC: Rename xprt_disconnect()\n\nxprt_disconnect() should really only be called when the transport shutdown\nis completed, and it is time to wake up any pending tasks. Rename it to\nxprt_disconnect_done() in order to reflect the semantical change.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3ebb067d92ebe5bcfd282acf12bade891d334d07",
      "tree": "99da8250d23887b8573dbeddae76ceb392c0663b",
      "parents": [
        "7272dcd31d56580dee7693c21e369fd167e137fe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 18:40:12 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:26 2008 -0500"
      },
      "message": "SUNRPC: Make call_status()/call_decode() call xprt_force_disconnect()\n\nMove the calls to xprt_disconnect() over to xprt_force_disconnect() in\norder to enable the transport layer to manage the state of the\nXPRT_CONNECTED flag.\nDitto in xs_tcp_read_fraghdr().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7272dcd31d56580dee7693c21e369fd167e137fe",
      "tree": "a69f10501069ec89d8fb7188f89e7d1d19929488",
      "parents": [
        "e06799f958bf7f9f8fae15f0c6f519953fb0257c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 18:28:53 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:26 2008 -0500"
      },
      "message": "SUNRPC: xprt_autoclose() should not call xprt_disconnect()\n\nThe transport layer should do that itself whenever appropriate.\n\nNote that the RDMA transport already assumes that it needs to call\nxprt_disconnect in xprt_rdma_close().\nFor TCP sockets, we want to call xprt_disconnect() only after the\nconnection has been closed by both ends.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e06799f958bf7f9f8fae15f0c6f519953fb0257c",
      "tree": "b1dd5c6bee1d7fa3ecd45f85b20b001c4af2dcdd",
      "parents": [
        "ef80367071dce7d2533e79ae8f3c84ec42708dc8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 05 15:44:12 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:26 2008 -0500"
      },
      "message": "SUNRPC: Use shutdown() instead of close() when disconnecting a TCP socket\n\nBy using shutdown() rather than close() we allow the RPC client to wait\nfor the TCP close handshake to complete before we start trying to reconnect\nusing the same port.\nWe use shutdown(SHUT_WR) only instead of shutting down both directions,\nhowever we wait until the server has closed the connection on its side.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef80367071dce7d2533e79ae8f3c84ec42708dc8",
      "tree": "48246449698c55b40791a98713005b55682849b2",
      "parents": [
        "3b948ae5be5e22532584113e2e02029519bbad8f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 31 16:19:17 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:25 2008 -0500"
      },
      "message": "SUNRPC: TCP clear XPRT_CLOSE_WAIT when the socket is closed for writes\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3b948ae5be5e22532584113e2e02029519bbad8f",
      "tree": "3bfa346bfbc9808c164d3d36af29a2090a5a0628",
      "parents": [
        "67a391d72ca7efb387c30ec761a487e50a3ff085"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 05 17:42:39 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:25 2008 -0500"
      },
      "message": "SUNRPC: Allow the client to detect if the TCP connection is closed\n\nAdd an xprt-\u003estate bit to enable the TCP -\u003estate_change() method to signal\nwhether or not the TCP connection is in the process of closing down.\nThis will to be used by the reconnection logic in a separate patch.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "67a391d72ca7efb387c30ec761a487e50a3ff085",
      "tree": "a3594508502769d56e838c20b5b094bcc1906b16",
      "parents": [
        "66af1e558538137080615e7ad6d1f2f80862de01"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 05 17:40:58 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:25 2008 -0500"
      },
      "message": "SUNRPC: Fix TCP rebinding logic\n\nCurrently the TCP rebinding logic assumes that if we\u0027re not using a\nreserved port, then we don\u0027t need to reconnect on the same port if a\ndisconnection event occurs. This breaks most RPC duplicate reply cache\nimplementations.\n\nAlso take into account the fact that xprt_min_resvport and\nxprt_max_resvport may change while we\u0027re reconnecting, since the user may\nchange them at any time via the sysctls. Ensure that we check the port\nboundaries every time we loop in xs_bind4/xs_bind6. Also ensure that if the\nboundaries change, we only scan the ports a maximum of 2 times.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "66af1e558538137080615e7ad6d1f2f80862de01",
      "tree": "f5f9680b86846d4df8312cd9bd729d6e10c7b5e8",
      "parents": [
        "ef818a28fac9bd214e676986d8301db0582b92a9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Nov 06 10:18:36 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:24 2008 -0500"
      },
      "message": "SUNRPC: Fix a race in xs_tcp_state_change()\n\nWhen scheduling the autoclose RPC call, we want to ensure that we don\u0027t\nrace against the test_bit() call in xprt_clear_locked().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1781f7f5804e52ee2d35328b129602146a8d8254",
      "tree": "dc67102f480e59d87859c50392452be4f41487bd",
      "parents": [
        "27ab2568649d5ba6c5a20212079b7c4f6da4ca0d"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Dec 11 11:30:32 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:33 2008 -0800"
      },
      "message": "[UDP]: Restore missing inDatagrams increments\n\nThe previous move of the the UDP inDatagrams counter caused the\ncounting of encapsulated packets, SUNRPC data (as opposed to call)\npackets and RXRPC packets to go missing.\n\nThis patch restores all of these.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "483066d62ec583fb6379377a9bfa8d5645b91c75",
      "tree": "c8750759402d7aa9f62714ef550d7d9516db6676",
      "parents": [
        "4c30d56edcaaa0446370189e8ab5c5393dc20ca3"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 24 18:24:02 2007 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:24:50 2007 -0500"
      },
      "message": "SUNRPC: make sunrpc/xprtsock.c:xs_setup_{udp,tcp}() static\n\nxs_setup_{udp,tcp}() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f4921aff5b174349bc36551f142a5dbac782ea3f",
      "tree": "bdff8ca1531977ad1d04ac8d70e10f8dfbb26c38",
      "parents": [
        "419217cb1d0266f62cbea6cdc6b1d1324350bc34",
        "05c88babab957dfd63bd351b25042d80bd854dd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 10:46:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 10:47:35 2007 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (131 commits)\n  NFSv4: Fix a typo in nfs_inode_reclaim_delegation\n  NFS: Add a boot parameter to disable 64 bit inode numbers\n  NFS: nfs_refresh_inode should clear cache_validity flags on success\n  NFS: Fix a connectathon regression in NFSv3 and NFSv4\n  NFS: Use nfs_refresh_inode() in ops that aren\u0027t expected to change the inode\n  SUNRPC: Don\u0027t call xprt_release in call refresh\n  SUNRPC: Don\u0027t call xprt_release() if call_allocate fails\n  SUNRPC: Fix buggy UDP transmission\n  [23/37] Clean up duplicate includes in\n  [2.6 patch] net/sunrpc/rpcb_clnt.c: make struct rpcb_program static\n  SUNRPC: Use correct type in buffer length calculations\n  SUNRPC: Fix default hostname created in rpc_create()\n  nfs: add server port to rpc_pipe info file\n  NFS: Get rid of some obsolete macros\n  NFS: Simplify filehandle revalidation\n  NFS: Ensure that nfs_link() returns a hashed dentry\n  NFS: Be strict about dentry revalidation when doing exclusive create\n  NFS: Don\u0027t zap the readdir caches upon error\n  NFS: Remove the redundant nfs_reval_fsid()\n  NFSv3: Always use directory post-op attributes in nfs3_proc_lookup\n  ...\n\nFix up trivial conflict due to sock_owned_by_user() cleanup manually in\nnet/sunrpc/xprtsock.c\n"
    },
    {
      "commit": "02b3d34631831a19ee691516e233756b270eac6d",
      "tree": "28ddf5beadfd1f1954ca5ada9ac9d337fa7ce9e2",
      "parents": [
        "ab0049b4a2f66074dff6af851b35bba888f53972"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Wed Sep 12 10:42:12 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:00 2007 -0700"
      },
      "message": "[NET] Cleanup: Use sock_owned_by_user() macro\n\nChanges asserts in sunrpc to use sock_owned_by_user() macro instead of\nreferencing sock_lock.owner directly.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2199700f1d660494d2552278354422c51becb686",
      "tree": "38a1b9887a515ed67a0f2495770a6c979937548c",
      "parents": [
        "58eaab93376cb524fd0f1531a56902d2b3eaa619"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 01 11:43:37 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:20:37 2007 -0400"
      },
      "message": "SUNRPC: Fix buggy UDP transmission\n\nxs_sendpages() may return a negative result. We sure as hell don\u0027t want to\nadd that to the \u0027tk_bytes_sent\u0027 tally...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1321d8d971028e796978f6a48d195c09158b3bcd",
      "tree": "6a778f7b7f829d1155a1d62fb04cff732f613a08",
      "parents": [
        "bcf35617a7c3474ad12892dfbb089a572e5c06d2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Sep 24 15:40:00 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:19 2007 -0400"
      },
      "message": "SUNRPC: Fix bytes-per-op accounting for RPC over UDP\n\nNFS performance metrics reported zero bytes sent per op when mounting with\nUDP.  The UDP socket transport wasn\u0027t properly counting the number of bytes\nsent.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4fa016eb248cac875541fa199af550a8aefa0e90",
      "tree": "2a8aad2ebc1a05174d0eacaceb671bca6b24850c",
      "parents": [
        "49c36fcc441baf6a4d698e3645d1adf28edaf57b"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:47:57 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:50 2007 -0400"
      },
      "message": "NFS/SUNRPC: support transport protocol naming\n\nTo prepare for including non-sockets-based RPC transports, select\nRPC transports by an identifier (to be used in following patches).\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "49c36fcc441baf6a4d698e3645d1adf28edaf57b",
      "tree": "b5e51e610e67ffd8fbdffd7d2e7d49a91ad4a1fc",
      "parents": [
        "3c341b0b925eee01daae2c594b81e673f659d7cd"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:47:31 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:48 2007 -0400"
      },
      "message": "SUNRPC: rearrange RPC sockets definitions\n\nTo prepare for including non-sockets-based RPC transports, move the\nsockets-dependent definitions into their own file.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3c341b0b925eee01daae2c594b81e673f659d7cd",
      "tree": "029db06dc895097b88c6765d349ce254db333bfd",
      "parents": [
        "bc25571e21e8bd053554209f5b1b228ad71e6b99"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:47:07 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:45 2007 -0400"
      },
      "message": "SUNRPC: rename the rpc_xprtsock_create structure\n\nTo prepare for including non-sockets-based RPC transports, change the\noverly suggestive name of the transport creation arguments struct.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bc25571e21e8bd053554209f5b1b228ad71e6b99",
      "tree": "4c008cc445f24c6b5501b2867b8ba7a752b5d710",
      "parents": [
        "81c098af3da7981902e9f8163aeccc2467c4ba6d"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:46:39 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:42 2007 -0400"
      },
      "message": "SUNRPC: Finish API to load RPC transport implementations dynamically\n\nAllow RPC client transport implementations to be loaded as needed, or\nas they become available from distributors or third-party vendors.\n\nNote that we leave the IP sockets implementation in sunrpc.o\npermanently, as IP functionality is always available in any\nkernel that runs NFS.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4417c8c41a51a2ae95b2a2fa2811640b368c4151",
      "tree": "40b585df4a75d86c3c97ca69f94508a020ced64d",
      "parents": [
        "4f40ee4a02a2d017b714d5b2faaf5c25bf9eae47"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:43:05 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:20 2007 -0400"
      },
      "message": "SUNRPC: export per-transport rpcbind netid\u0027s\n\nThe rpcbind (v3+) netid is provided by each RPC client transport. This fixes\nan omission in IPv6 rpcbind client support, and enables future extension.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "756805e7a76bcd2aae07fe31786fe453375e60b1"
}
