)]}'
{
  "commit": "b139ba4e90dccbf4cd4efb112af96a5c9e0b098c",
  "tree": "c955ff09255e74b8cc991dfa6f67853668a3b3c4",
  "parents": [
    "5e6a3ce6573f0c519d1ff57df60e3877bb2d3151"
  ],
  "author": {
    "name": "Pavel Emelyanov",
    "email": "xemul@parallels.com",
    "time": "Thu Apr 19 03:41:57 2012 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sat Apr 21 15:52:25 2012 -0400"
  },
  "message": "tcp: Repair connection-time negotiated parameters\n\nThere are options, which are set up on a socket while performing\nTCP handshake. Need to resurrect them on a socket while repairing.\nA new sockoption accepts a buffer and parses it. The buffer should\nbe CODE:VALUE sequence of bytes, where CODE is standard option\ncode and VALUE is the respective value.\n\nOnly 4 options should be handled on repaired socket.\n\nTo read 3 out of 4 of these options the TCP_INFO sockoption can be\nused. An ability to get the last one (the mss_clamp) was added by\nthe previous patch.\n\nNow the restore. Three of these options -- timestamp_ok, mss_clamp\nand snd_wscale -- are just restored on a coket.\n\nThe sack_ok flags has 2 issues. First, whether or not to do sacks\nat all. This flag is just read and set back. No other sack  info is\nsaved or restored, since according to the standart and the code\ndropping all sack-ed segments is OK, the sender will resubmit them\nagain, so after the repair we will probably experience a pause in\nconnection. Next, the fack bit. It\u0027s just set back on a socket if\nthe respective sysctl is set. No collected stats about packets flow\nis preserved. As far as I see (plz, correct me if I\u0027m wrong) the\nfack-based congestion algorithm survives dropping all of the stats\nand repairs itself eventually, probably losing the performance for\nthat period.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4e90e6ae79df71831855fe2aa90fb18399977e2b",
      "old_mode": 33188,
      "old_path": "include/linux/tcp.h",
      "new_id": "986593685566dc003b6ac4d0bc3bc4215211b616",
      "new_mode": 33188,
      "new_path": "include/linux/tcp.h"
    },
    {
      "type": "modify",
      "old_id": "b4e690ddb08c2cba8095383c9d84edf64bbc9426",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp.c",
      "new_id": "3ce3bd031f33cd87cd730e3617248638a02e8aea",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp.c"
    }
  ]
}
