)]}'
{
  "commit": "696ac172fffa653dca401bb2b0cad91cf2ce453f",
  "tree": "fec0af0d449705ddfd6145c02cf0420579608d9f",
  "parents": [
    "0056f4e66a1b8f00245248877e80386af36af14c"
  ],
  "author": {
    "name": "Johannes Weiner",
    "email": "hannes@cmpxchg.org",
    "time": "Thu Oct 31 16:34:15 2013 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Oct 31 16:58:13 2013 -0700"
  },
  "message": "mm: memcg: fix test for child groups\n\nWhen memcg code needs to know whether any given memcg has children, it\nuses the cgroup child iteration primitives and returns true/false\ndepending on whether the iteration loop is executed at least once or\nnot.\n\nBecause a cgroup\u0027s list of children is RCU protected, these primitives\nrequire the RCU read-lock to be held, which is not the case for all\nmemcg callers.  This results in the following splat when e.g.  enabling\nhierarchy mode:\n\n  WARNING: CPU: 3 PID: 1 at kernel/cgroup.c:3043 css_next_child+0xa3/0x160()\n  CPU: 3 PID: 1 Comm: systemd Not tainted 3.12.0-rc5-00117-g83f11a9-dirty #18\n  Hardware name: LENOVO 3680B56/3680B56, BIOS 6QET69WW (1.39 ) 04/26/2012\n  Call Trace:\n    dump_stack+0x54/0x74\n    warn_slowpath_common+0x78/0xa0\n    warn_slowpath_null+0x1a/0x20\n    css_next_child+0xa3/0x160\n    mem_cgroup_hierarchy_write+0x5b/0xa0\n    cgroup_file_write+0x108/0x2a0\n    vfs_write+0xbd/0x1e0\n    SyS_write+0x4c/0xa0\n    system_call_fastpath+0x16/0x1b\n\nIn the memcg case, we only care about children when we are attempting to\nmodify inheritable attributes interactively.  Racing with deletion could\nmean a spurious -EBUSY, no problem.  Racing with addition is handled\njust fine as well through the memcg_create_mutex: if the child group is\nnot on the list after the mutex is acquired, it won\u0027t be initialized\nfrom the parent\u0027s attributes until after the unlock.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\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": "7e11cb7d75b1179ae778ca67b506cb4f2c8c2c93",
      "old_mode": 33188,
      "old_path": "mm/memcontrol.c",
      "new_id": "e63278222be503e3b13b8a601da804272960f2f7",
      "new_mode": 33188,
      "new_path": "mm/memcontrol.c"
    }
  ]
}
