)]}'
{
  "commit": "146aa1bd0511f88ddb4e92fafa2b8aad4f2f65f3",
  "tree": "d7deb46b9a38f82f109b2126317899efbbce41c2",
  "parents": [
    "248736c2a57206388c86f8cdd3392ee986e84f9f"
  ],
  "author": {
    "name": "Lai Jiangshan",
    "email": "laijs@cn.fujitsu.com",
    "time": "Sat Oct 18 20:28:03 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon Oct 20 08:52:38 2008 -0700"
  },
  "message": "cgroups: fix probable race with put_css_set[_taskexit] and find_css_set\n\nput_css_set_taskexit may be called when find_css_set is called on other\ncpu.  And the race will occur:\n\nput_css_set_taskexit side                    find_css_set side\n\n                                        |\natomic_dec_and_test(\u0026kref-\u003erefcount)    |\n    /* kref-\u003erefcount \u003d 0 */            |\n....................................................................\n                                        |  read_lock(\u0026css_set_lock)\n                                        |  find_existing_css_set\n                                        |  get_css_set\n                                        |  read_unlock(\u0026css_set_lock);\n....................................................................\n__release_css_set                       |\n....................................................................\n                                        | /* use a released css_set */\n                                        |\n\n[put_css_set is the same. But in the current code, all put_css_set are\nput into cgroup mutex critical region as the same as find_css_set.]\n\n[akpm@linux-foundation.org: repair comments]\n[menage@google.com: eliminate race in css_set refcounting]\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.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": "30934e4bfaab7b9e3197e0d7410579c0737bf2c7",
      "old_mode": 33188,
      "old_path": "include/linux/cgroup.h",
      "new_id": "7166023e07d26036f3164eca0b2c52cae7fdc5b8",
      "new_mode": 33188,
      "new_path": "include/linux/cgroup.h"
    },
    {
      "type": "modify",
      "old_id": "8c6e1c17e6d37faae0870c2d9ff5635c1e192037",
      "old_mode": 33188,
      "old_path": "kernel/cgroup.c",
      "new_id": "1e49218457e03460e07953a885ac833fb0782ec6",
      "new_mode": 33188,
      "new_path": "kernel/cgroup.c"
    },
    {
      "type": "modify",
      "old_id": "c3dc3aba4c02a5b243b25b1ed7be971c5ec1ef17",
      "old_mode": 33188,
      "old_path": "kernel/cgroup_debug.c",
      "new_id": "daca6209202df4a84df7e0fc41025e33c7642131",
      "new_mode": 33188,
      "new_path": "kernel/cgroup_debug.c"
    }
  ]
}
