)]}'
{
  "commit": "dca8b089c95d94afa1d715df257de0286350e99d",
  "tree": "f686fef8ef3d80f81bd9f91072ce8c5f347e3e7c",
  "parents": [
    "33765d06033cc4ba4d9ae6d3d606ef3f28773c1b"
  ],
  "author": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Feb 24 13:38:12 2011 -0800"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Feb 24 13:38:12 2011 -0800"
  },
  "message": "ipv4: Rearrange how ip_route_newports() gets port keys.\n\nip_route_newports() is the only place in the entire kernel that\ncares about the port members in the routing cache entry\u0027s lookup\nflow key.\n\nTherefore the only reason we store an entire flow inside of the\nstruct rtentry is for this one special case.\n\nRewrite ip_route_newports() such that:\n\n1) The caller passes in the original port values, so we don\u0027t need\n   to use the rth-\u003efl.fl_ip_{s,d}port values to remember them.\n\n2) The lookup flow is constructed by hand instead of being copied\n   from the routing cache entry\u0027s flow.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf790c1c6ac866935d90cd0e42ad1afd8bde4a3f",
      "old_mode": 33188,
      "old_path": "include/net/route.h",
      "new_id": "b3f89ad04e0bef0a530e9d0a58176f3793946d57",
      "new_mode": 33188,
      "new_path": "include/net/route.h"
    },
    {
      "type": "modify",
      "old_id": "45a434f94169f13daf1addc73cdb809d77fae213",
      "old_mode": 33188,
      "old_path": "net/dccp/ipv4.c",
      "new_id": "937989199c80fdccc0e88755b4650d3f77da76de",
      "new_mode": 33188,
      "new_path": "net/dccp/ipv4.c"
    },
    {
      "type": "modify",
      "old_id": "ef5a90beb9b03cabfaee0903c31c5e63116e2c00",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_ipv4.c",
      "new_id": "27a0cc8cc88852d492375e0d86f97815fb0d2050",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_ipv4.c"
    }
  ]
}
