)]}'
{
  "commit": "aa226ff4a1ce79f229c6b7a4c0a14e17fececd01",
  "tree": "1db4c5f20ffafca177de0bbe26beddcc60e26f93",
  "parents": [
    "e93ad19d05648397ef3bcb838d26aec06c245dc0"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Thu Jan 21 15:31:11 2016 -0500"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Fri Jan 22 10:42:57 2016 -0500"
  },
  "message": "cgroup: make sure a parent css isn\u0027t offlined before its children\n\nThere are three subsystem callbacks in css shutdown path -\ncss_offline(), css_released() and css_free().  Except for\ncss_released(), cgroup core didn\u0027t guarantee the order of invocation.\ncss_offline() or css_free() could be called on a parent css before its\nchildren.  This behavior is unexpected and led to bugs in cpu and\nmemory controller.\n\nThis patch updates offline path so that a parent css is never offlined\nbefore its children.  Each css keeps online_cnt which reaches zero iff\nitself and all its children are offline and offline_css() is invoked\nonly after online_cnt reaches zero.\n\nThis fixes the memory controller bug and allows the fix for cpu\ncontroller.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-tested-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nReported-by: Brian Christiansen \u003cbrian.o.christiansen@gmail.com\u003e\nLink: http://lkml.kernel.org/g/5698A023.9070703@de.ibm.com\nLink: http://lkml.kernel.org/g/CAKB58ikDkzc8REt31WBkD99+hxNzjK4+FBmhkgS+NVrC9vjMSg@mail.gmail.com\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: stable@vger.kernel.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7f540f7f588d8c8461af975a5ebd21a08e6cf14b",
      "old_mode": 33188,
      "old_path": "include/linux/cgroup-defs.h",
      "new_id": "789471dba6fb30f15c752fbca46ddbefe5bfe850",
      "new_mode": 33188,
      "new_path": "include/linux/cgroup-defs.h"
    },
    {
      "type": "modify",
      "old_id": "88abd4d076d89835f7741962b0ffdf036c7dc950",
      "old_mode": 33188,
      "old_path": "kernel/cgroup.c",
      "new_id": "d01587793865e71acf9d6810c02446ab353d989d",
      "new_mode": 33188,
      "new_path": "kernel/cgroup.c"
    }
  ]
}
