)]}'
{
  "commit": "255bb490c8c27eed484d538efe6ef6a7473bd3f6",
  "tree": "630289b9de253a1f0575f29d2de019494016ff79",
  "parents": [
    "1654e7411a1ad4999fe7890ef51d2a2bbb1fcf76"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Wed Mar 02 08:48:06 2011 -0500"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "jaxboe@fusionio.com",
    "time": "Wed Mar 02 08:48:06 2011 -0500"
  },
  "message": "block: blk-flush shouldn\u0027t call directly into q-\u003erequest_fn() __blk_run_queue()\n\nblk-flush decomposes a flush into sequence of multiple requests.  On\ncompletion of a request, the next one is queued; however, block layer\nmust not implicitly call into q-\u003erequest_fn() directly from completion\npath.  This makes the queue behave unexpectedly when seen from the\ndrivers and violates the assumption that q-\u003erequest_fn() is called\nwith process context + queue_lock.\n\nThis patch makes blk-flush the following two changes to make sure\nq-\u003erequest_fn() is not called directly from request completion path.\n\n- blk_flush_complete_seq_end_io() now asks __blk_run_queue() to always\n  use kblockd instead of calling directly into q-\u003erequest_fn().\n\n- queue_next_fseq() uses ELEVATOR_INSERT_REQUEUE instead of\n  ELEVATOR_INSERT_FRONT so that elv_insert() doesn\u0027t try to unplug the\n  request queue directly.\n\nReported by Jan in the following threads.\n\n http://thread.gmane.org/gmane.linux.ide/48778\n http://thread.gmane.org/gmane.linux.ide/48786\n\nstable: applicable to v2.6.37.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "56adaa8d55cdd4c0c9e337e7fadfd25055769deb",
      "old_mode": 33188,
      "old_path": "block/blk-flush.c",
      "new_id": "b27d0208611b4d904e7fda9e4e66bd9a4c7411b4",
      "new_mode": 33188,
      "new_path": "block/blk-flush.c"
    }
  ]
}
