)]}'
{
  "commit": "9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c",
  "tree": "cb7a48eb2a6d30b90144a55bc6bb82caacfc9622",
  "parents": [
    "c259e01a1ec90063042f758e409cd26b2a0963c8"
  ],
  "author": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Wed Jun 22 19:47:01 2011 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Aug 29 12:26:59 2011 +0200"
  },
  "message": "sched: Move blk_schedule_flush_plug() out of __schedule()\n\nThere is no real reason to run blk_schedule_flush_plug() with\ninterrupts and preemption disabled.\n\nMove it into schedule() and call it when the task is going voluntarily\nto sleep. There might be false positives when the task is woken\nbetween that call and actually scheduling, but that\u0027s not really\ndifferent from being woken immediately after switching away.\n\nThis fixes a deadlock in the scheduler where the\nblk_schedule_flush_plug() callchain enables interrupts and thereby\nallows a wakeup to happen of the task that\u0027s going to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: stable@kernel.org # 2.6.39+\nLink: http://lkml.kernel.org/n/tip-dwfxtra7yg1b5r65m32ywtct@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec15e8129cf74e8255d6dd1a3c67553fa2c1217e",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "511732c39b6ec917b207c3c0113ebb7eca8c19cc",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    }
  ]
}
