)]}'
{
  "commit": "e93160803ffda2e67d9ff9cacb63bb6868c8398f",
  "tree": "e3305bb56336c32862f1970882f030caca7f11b2",
  "parents": [
    "ed95779340b50e362245c81b5dec0d11a1debfa8"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Mon Nov 05 09:16:58 2012 -0800"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Mon Nov 05 09:16:58 2012 -0800"
  },
  "message": "cgroup: kill CSS_REMOVED\n\nCSS_REMOVED is one of the several contortions which were necessary to\nsupport css reference draining on cgroup removal.  All css-\u003erefcnts\nwhich need draining should be deactivated and verified to equal zero\natomically w.r.t. css_tryget().  If any one isn\u0027t zero, all refcnts\nneeded to be re-activated and css_tryget() shouldn\u0027t fail in the\nprocess.\n\nThis was achieved by letting css_tryget() busy-loop until either the\nrefcnt is reactivated (failed removal attempt) or CSS_REMOVED is set\n(committing to removal).\n\nNow that css refcnt draining is no longer used, there\u0027s no need for\natomic rollback mechanism.  css_tryget() simply can look at the\nreference count and fail if it\u0027s deactivated - it\u0027s never getting\nre-activated.\n\nThis patch removes CSS_REMOVED and updates __css_tryget() to fail if\nthe refcnt is deactivated.  As deactivation and removal are a single\nstep now, they no longer need to be protected against css_tryget()\nhappening from irq context.  Remove local_irq_disable/enable() from\ncgroup_rmdir().\n\nNote that this removes css_is_removed() whose only user is VM_BUG_ON()\nin memcontrol.c.  We can replace it with a check on the refcnt but\ngiven that the only use case is a debug assert, I think it\u0027s better to\nsimply unexport it.\n\nv2: Comment updated and explanation on local_irq_disable/enable()\n    added per Michal Hocko.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "02e09c0e98abe4e04c34e250c0a0df15e9fc43ff",
      "old_mode": 33188,
      "old_path": "include/linux/cgroup.h",
      "new_id": "a3098046250bfa5999f71f905109f1275f87481f",
      "new_mode": 33188,
      "new_path": "include/linux/cgroup.h"
    },
    {
      "type": "modify",
      "old_id": "8c605e2bdd1ae45698e45b96ebcd8f2ca489726c",
      "old_mode": 33188,
      "old_path": "kernel/cgroup.c",
      "new_id": "c194f9e4fc7b2d59a35ad0113b6714088d881df2",
      "new_mode": 33188,
      "new_path": "kernel/cgroup.c"
    },
    {
      "type": "modify",
      "old_id": "5a1d584ffed3052e808b266f0a04d36d88f5a742",
      "old_mode": 33188,
      "old_path": "mm/memcontrol.c",
      "new_id": "37c356646544396a61ae6887b483c975b05b6f31",
      "new_mode": 33188,
      "new_path": "mm/memcontrol.c"
    }
  ]
}
