)]}'
{
  "commit": "52499afe40387524e9f46ef9ce4695efccdd2ed9",
  "tree": "eb097a1c4150ff00a66a692f378ea4fb6f1035f0",
  "parents": [
    "a280b89982f48e9a32c6410a37419b12ca88af6b"
  ],
  "author": {
    "name": "David S. Miller",
    "email": "davem@sunset.davemloft.net",
    "time": "Mon Jul 31 22:32:09 2006 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@sunset.davemloft.net",
    "time": "Wed Aug 02 13:38:24 2006 -0700"
  },
  "message": "[TCP]: Process linger2 timeout consistently.\n\nBased upon guidance from Alexey Kuznetsov.\n\nWhen linger2 is active, we check to see if the fin_wait2\ntimeout is longer than the timewait.  If it is, we schedule\nthe keepalive timer for the difference between the timewait\ntimeout and the fin_wait2 timeout.\n\nWhen this orphan socket is seen by tcp_keepalive_timer()\nit will try to transform this fin_wait2 socket into a\nfin_wait2 mini-socket, again if linger2 is active.\n\nNot all paths were setting this initial keepalive timer correctly.\nThe tcp input path was doing it correctly, but tcp_close() wasn\u0027t,\npotentially making the socket linger longer than it really needs to.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f6a2d9223d07ca1503aecfdaa9124e09b8e22247",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp.c",
      "new_id": "7b621e44b124d43b60a3b2aac3bdccacf7801b81",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp.c"
    }
  ]
}
