)]}'
{
  "commit": "06f9a06f4aeecdb9d07014713ab41b548ae219b5",
  "tree": "758c03ff1f04316be558d0d92af1f1512ed212ad",
  "parents": [
    "c9bba34243a86fb3ac82d1bdd0ce4bf796b79559"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Thu Jul 19 13:52:53 2012 -0700"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Thu Jul 19 13:52:53 2012 -0700"
  },
  "message": "kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed\n\nkthread_worker provides minimalistic workqueue-like interface for\nusers which need a dedicated worker thread (e.g. for realtime\npriority).  It has basic queue, flush_work, flush_worker operations\nwhich mostly match the workqueue counterparts; however, due to the way\nflush_work() is implemented, it has a noticeable difference of not\nallowing work items to be freed while being executed.\n\nWhile the current users of kthread_worker are okay with the current\nbehavior, the restriction does impede some valid use cases.  Also,\nremoving this difference isn\u0027t difficult and actually makes the code\neasier to understand.\n\nThis patch reimplements flush_kthread_work() such that it uses a\nflush_work item instead of queue/done sequence numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0714b24c0e454c38750e4509a6bc5ee17e394673",
      "old_mode": 33188,
      "old_path": "include/linux/kthread.h",
      "new_id": "22ccf9dee177dcfe7ec6b91eeb6b5c6867fc4903",
      "new_mode": 33188,
      "new_path": "include/linux/kthread.h"
    },
    {
      "type": "modify",
      "old_id": "7b8a678b833bc191b7620b6bec1c8d7387165173",
      "old_mode": 33188,
      "old_path": "kernel/kthread.c",
      "new_id": "4034b2bce6a02c2872dad5402e4b92ff01cbcd6c",
      "new_mode": 33188,
      "new_path": "kernel/kthread.c"
    }
  ]
}
