)]}'
{
  "commit": "eab6d82843ee1df244f8847d1bf8bb89160ec4aa",
  "tree": "86a43e6ae1734779fe54ea5e62408395e6d0b36a",
  "parents": [
    "ea1abd6197d5805655da1bb589929762f4b4aa08"
  ],
  "author": {
    "name": "Lai Jiangshan",
    "email": "laijs@cn.fujitsu.com",
    "time": "Tue Sep 18 09:59:22 2012 -0700"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Tue Sep 18 09:59:22 2012 -0700"
  },
  "message": "workqueue: WORKER_REBIND is no longer necessary for busy rebinding\n\nBecause the old unbind/rebinding implementation wasn\u0027t atomic w.r.t.\nGCWQ_DISASSOCIATED manipulation which is protected by\nglobal_cwq-\u003elock, we had to use two flags, WORKER_UNBOUND and\nWORKER_REBIND, to avoid incorrectly losing all NOT_RUNNING bits with\nback-to-back CPU hotplug operations; otherwise, completion of\nrebinding while another unbinding is in progress could clear UNBIND\nprematurely.\n\nNow that both unbind/rebinding are atomic w.r.t. GCWQ_DISASSOCIATED,\nthere\u0027s no need to use two flags.  Just one is enough.  Don\u0027t use\nWORKER_REBIND for busy rebinding.\n\ntj: Updated description.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "770c1a8128bfdfe9bb88dae8300427a5b71d4c0c",
      "old_mode": 33188,
      "old_path": "kernel/workqueue.c",
      "new_id": "794724efb733de88b8524158a6b49c78a8dc6ad3",
      "new_mode": 33188,
      "new_path": "kernel/workqueue.c"
    }
  ]
}
