)]}'
{
  "commit": "39d8cda76cfb1178455f9d196b39e773878e6c05",
  "tree": "b58af892ccb3fd232078a87148c1dc9622be0c84",
  "parents": [
    "22aba383ce52f8ca8740f9a74dc66b1b68138813"
  ],
  "author": {
    "name": "Pavel Emelyanov",
    "email": "xemul@openvz.org",
    "time": "Sat Mar 22 16:50:58 2008 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sat Mar 22 16:50:58 2008 -0700"
  },
  "message": "[SOCK]: Add udp_hash member to struct proto.\n\nInspired by the commit ab1e0a13 ([SOCK] proto: Add hashinfo member to \nstruct proto) from Arnaldo, I made similar thing for UDP/-Lite IPv4 \nand -v6 protocols.\n\nThe result is not that exciting, but it removes some levels of\nindirection in udpxxx_get_port and saves some space in code and text.\n\nThe first step is to union existing hashinfo and new udp_hash on the\nstruct proto and give a name to this union, since future initialization \nof tcpxxx_prot, dccp_vx_protinfo and udpxxx_protinfo will cause gcc \nwarning about inability to initialize anonymous member this way.\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": "97dc35ad09bef3c8618445f44d5e97976b0aa2a9",
      "old_mode": 33188,
      "old_path": "include/net/inet_hashtables.h",
      "new_id": "d99c1ba2ece0e0ff98488859abc30e8cde549b77",
      "new_mode": 33188,
      "new_path": "include/net/inet_hashtables.h"
    },
    {
      "type": "modify",
      "old_id": "b89680d2693befc81052e743052f4dbf580c8cb3",
      "old_mode": 33188,
      "old_path": "include/net/sock.h",
      "new_id": "c3175c400b79ce3b6f064647bcbc2feacf376b8d",
      "new_mode": 33188,
      "new_path": "include/net/sock.h"
    },
    {
      "type": "modify",
      "old_id": "17ad69e90e4890b982a56fb4afda11caeb6cbf21",
      "old_mode": 33188,
      "old_path": "net/dccp/ipv4.c",
      "new_id": "4ca8b0c93c80781ea6ce7b181b8ce05afbdb52fb",
      "new_mode": 33188,
      "new_path": "net/dccp/ipv4.c"
    },
    {
      "type": "modify",
      "old_id": "1a5e50b9067764a1ffa85442010a9551ee7ebafe",
      "old_mode": 33188,
      "old_path": "net/dccp/ipv6.c",
      "new_id": "2fec1af1a8c39e6e1e70472f2633d41f8dae6d68",
      "new_mode": 33188,
      "new_path": "net/dccp/ipv6.c"
    },
    {
      "type": "modify",
      "old_id": "cc1a1859a61b69c3fab62b2044e015f23e2000ef",
      "old_mode": 33188,
      "old_path": "net/ipv4/inet_connection_sock.c",
      "new_id": "f9c5c4def1baba5a910d9f7f6563ea67e03f0a8e",
      "new_mode": 33188,
      "new_path": "net/ipv4/inet_connection_sock.c"
    },
    {
      "type": "modify",
      "old_id": "1aba606f6bbb610249dcc06291d3435907b53a30",
      "old_mode": 33188,
      "old_path": "net/ipv4/inet_hashtables.c",
      "new_id": "8cd1ad9b91118248e2fb8243afc2c7f3e413c6ed",
      "new_mode": 33188,
      "new_path": "net/ipv4/inet_hashtables.c"
    },
    {
      "type": "modify",
      "old_id": "167a0f557531968e1bf8464765d7223ce277e794",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_ipv4.c",
      "new_id": "1a47719a55ad87fe876f99470125ae626c2f6b15",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_ipv4.c"
    },
    {
      "type": "modify",
      "old_id": "99fd25f7f005879ec28b78b6af51890c7abb5fd8",
      "old_mode": 33188,
      "old_path": "net/ipv6/inet6_hashtables.c",
      "new_id": "c0c8d2d176823a74cf7d6db3bcf5cb4c4ab32ccc",
      "new_mode": 33188,
      "new_path": "net/ipv6/inet6_hashtables.c"
    },
    {
      "type": "modify",
      "old_id": "56d0cea7d578cd211b049f01a139c5dc55926d2d",
      "old_mode": 33188,
      "old_path": "net/ipv6/tcp_ipv6.c",
      "new_id": "8dd72966ff784bbadbe3558a94e07980efc7362e",
      "new_mode": 33188,
      "new_path": "net/ipv6/tcp_ipv6.c"
    }
  ]
}
