)]}'
{
  "commit": "247488c0a490214a0b5227a678ec2d46b7dba4e5",
  "tree": "6d59ff6f4db686fb2b0902db8e43c2ca2346dee7",
  "parents": [
    "34a95132e0e44bd2e0235ee90f8c3eafe90f269d"
  ],
  "author": {
    "name": "Wei Wang",
    "email": "weiwan@google.com",
    "time": "Fri Jun 16 10:46:37 2017 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Fri Jun 16 15:00:00 2017 -0400"
  },
  "message": "decnet: always not take dst-\u003e__refcnt when inserting dst into hash table\n\nIn the existing dn_route.c code, dn_route_output_slow() takes\ndst-\u003e__refcnt before calling dn_insert_route() while dn_route_input_slow()\ndoes not take dst-\u003e__refcnt before calling dn_insert_route().\nThis makes the whole routing code very buggy.\nIn dn_dst_check_expire(), dnrt_free() is called when rt expires. This\nmakes the routes inserted by dn_route_output_slow() not able to be\nfreed as the refcnt is not released.\nIn dn_dst_gc(), dnrt_drop() is called to release rt which could\npotentially cause the dst-\u003e__refcnt to be dropped to -1.\nIn dn_run_flush(), dst_free() is called to release all the dst. Again,\nit makes the dst inserted by dn_route_output_slow() not able to be\nreleased and also, it does not wait on the rcu and could potentially\ncause crash in the path where other users still refer to this dst.\n\nThis patch makes sure both input and output path do not take\ndst-\u003e__refcnt before calling dn_insert_route() and also makes sure\ndnrt_free()/dst_free() is called when removing dst from the hash table.\nThe only difference between those 2 calls is that dnrt_free() waits on\nthe rcu while dst_free() does not.\n\nSigned-off-by: Wei Wang \u003cweiwan@google.com\u003e\nAcked-by: Martin KaFai Lau \u003ckafai@fb.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4b9518a0d2489494ed88b6808f95803cf1b543ad",
      "old_mode": 33188,
      "old_path": "net/decnet/dn_route.c",
      "new_id": "6f95612b4d321d63e39b37f881f0e46331999ad2",
      "new_mode": 33188,
      "new_path": "net/decnet/dn_route.c"
    }
  ]
}
