)]}'
{
  "commit": "dfc428b656c4693a2334a8d9865b430beddb562a",
  "tree": "ad8aa91d2e3c5e9cedc5f4efb2e04a86b4a0784e",
  "parents": [
    "12b3e038e5bb4860c17d001e92a6fa9964c0a7b9"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@redhat.com",
    "time": "Wed Aug 03 16:21:04 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Aug 03 14:25:20 2011 -1000"
  },
  "message": "taskstats: add_del_listener() shouldn\u0027t use the wrong node\n\n1. Commit 26c4caea9d69 \"don\u0027t allow duplicate entries in listener mode\"\n   changed add_del_listener(REGISTER) so that \"next_cpu:\" can reuse the\n   listener allocated for the previous cpu, this doesn\u0027t look exactly\n   right even if minor.\n\n   Change the code to kfree() in the already-registered case, this case\n   is unlikely anyway so the extra kmalloc_node() shouldn\u0027t hurt but\n   looke more correct and clean.\n\n2. use the plain list_for_each_entry() instead of _safe() to scan\n   listeners-\u003elist.\n\n3. Remove the unneeded INIT_LIST_HEAD(\u0026s-\u003elist), we are going to\n   list_add(\u0026s-\u003elist).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nReviewed-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d1db2880d1cf8b3daac8f95f3fd85ac70c1eda7c",
      "old_mode": 33188,
      "old_path": "kernel/taskstats.c",
      "new_id": "a09a54936f1927d3f72cea4569f2a675748b8c0d",
      "new_mode": 33188,
      "new_path": "kernel/taskstats.c"
    }
  ]
}
