)]}'
{
  "commit": "9f70f92f2d9dd63b8ff8ce1ca87f06389fc6124a",
  "tree": "7bdc05730e1a55a244a0f6a5132fb51b936594da",
  "parents": [
    "98096f73a42454117068c6cd875a778cfb7919f1"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Wed Jun 12 20:44:16 2013 -0700"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Wed Jun 12 20:44:16 2013 -0700"
  },
  "message": "percpu-refcount: implement percpu_ref_cancel_init()\n\nNormally, percpu_ref_init() initializes and percpu_ref_kill*()\ninitiates destruction which completes asynchronously.  The\nasynchronous destruction can be problematic in init failure path where\nthe caller wants to destroy half-constructed object - distinguishing\nhalf-constructed objects from the usual release method can be painful\nfor complex objects.\n\nThis patch implements percpu_ref_cancel_init() which synchronously\ndestroys the percpu_ref without invoking release.  To avoid\nunintentional misuses, the function requires the ref to have finished\npercpu_ref_init() but never used and triggers WARN otherwise.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a330b2760495a6ef92cb36d29de9a274942b0b65",
      "old_mode": 33188,
      "old_path": "include/linux/percpu-refcount.h",
      "new_id": "dd2a0860045321dbfb5c99ef55a8ff34a1104e39",
      "new_mode": 33188,
      "new_path": "include/linux/percpu-refcount.h"
    },
    {
      "type": "modify",
      "old_id": "b2f136849550a6caf174681d2f3cbaae3244c910",
      "old_mode": 33188,
      "old_path": "lib/percpu-refcount.c",
      "new_id": "9b879cf75df0103265bd7097b41197defdcd292c",
      "new_mode": 33188,
      "new_path": "lib/percpu-refcount.c"
    }
  ]
}
