)]}'
{
  "log": [
    {
      "commit": "a534dbe96e9929c7245924d8252d89048c23d569",
      "tree": "394151a29dc2ea43e20cbf5b605732525ce09d9d",
      "parents": [
        "05ce7bfe547c9fa967d9cab6c37867a9cb6fb3fa"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Wed Apr 14 20:54:03 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 21 17:42:08 2010 +0200"
      },
      "message": "block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer\n\nblk_rq_timed_out_timer() relied on blk_add_timer() never returning a\ntimer value of zero, but commit 7838c15b8dd18e78a523513749e5b54bda07b0cb\nremoved the code that bumped this value when it was zero.\nTherefore when jiffies is near wrap we could get unlucky \u0026 not set the\ntimeout value correctly.\n\nThis patch uses a flag to indicate that the timeout value was set and so\nhandles jiffies wrap correctly, and it keeps all the logic in one\nfunction so should be easier to maintain in the future.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2eef33e439ba9ae387cdc3f1abcef2f3f6c4e7a8",
      "tree": "a25b4d1f59aaf23295a853beeb3922f58ee04b2b",
      "parents": [
        "10732f5661fb7adf62e20733b0030fc0fc93b0c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: clean up misc stuff after block layer timeout conversion\n\n* In blk_rq_timed_out_timer(), else { if } to else if\n\n* In blk_add_timer(), simplify if/else block\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "17d5c8ca7572124c9623045f24b0c21d4aa2b47f",
      "tree": "dfecc3aa2acae305c01238002a3e53d6ae8d3238",
      "parents": [
        "f3c737de8f57b5ce756010c2175f7d574194b30d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Apr 23 10:32:59 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:54:21 2009 +0200"
      },
      "message": "block: fix intermittent dm timeout based oops\n\nVery rarely under stress testing of dm, oopses are occuring as\nsomething tampers with an old stack frame.  This has been traced back\nto blk_abort_queue() leaving a timeout_list pointing to the stack.\nThe reason is that sometimes blk_abort_request() won\u0027t delete the\ntimer (if the request is marked as complete but before the timer has\nbeen removed, a small race window).  Fix this by splicing back from\nthe ususally empty list to the q-\u003etimeout_list.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b759113499d6c7cb75fab04f56772579308bc0f8",
      "tree": "d36a0ea295f675bd678ee30e8191c0358cfc5b74",
      "parents": [
        "71982a409f12c50d011325a4471aa20666bb908d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 17 08:36:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:10 2009 +0200"
      },
      "message": "block: make blk_abort_queue() ignore non-request based devices\n\nThere\u0027s nothing to do for those devices, since the timeout handling is\nbased on requests.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "be987fdb55a4726e2fcbab7501f89276bdb57288",
      "tree": "bc92a402a4d710718883e67eeab6e0ced221e7ff",
      "parents": [
        "41b8c853a495438208faa5be03bbb0050859163b"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Feb 18 10:30:15 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:34:16 2009 +0100"
      },
      "message": "block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list\n\nblk_abort_queue() iterates the timeout list and aborts each request on the\nlist, but if the driver error handling readds a request to the timeout list\nduring this processing, we could be looping forever. Fix this by splicing\ncurrent entries to a local list and run over that list instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "70ed28b92a786f44750ab64117b03d126dd14656",
      "tree": "03e84c48c262b380fbcccb21f55ff979aaeb4e77",
      "parents": [
        "65d3618ccfe686e8d7b3f01a838d0578182406df"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Nov 19 14:38:39 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:28:42 2008 +0100"
      },
      "message": "block: leave the request timeout timer running even on an empty list\n\nFor sync IO, we\u0027ll often do them serialized. This means we\u0027ll be touching\nthe queue timer for every IO, as opposed to only occasionally like we\ndo for queued IO. Instead of deleting the timer when the last request\nis removed, just let continue running. If a new request comes up soon\nwe then don\u0027t have to readd the timer again. If no new requests arrive,\nthe timer will expire without side effect later.\n\nThis improves high iops sync IO by ~1%.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "65d3618ccfe686e8d7b3f01a838d0578182406df",
      "tree": "0a53a7d3649eb82a8e2af2c9f4e8de2d9b1b6616",
      "parents": [
        "565e411d764eeda006738dfadbccca79d48381e1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 30 08:53:02 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:28:42 2008 +0100"
      },
      "message": "block: add comment in blk_rq_timed_out() about why next can not be 0\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "565e411d764eeda006738dfadbccca79d48381e1",
      "tree": "5bd835b9aed2df0dc91ed58740834d6e156e86ea",
      "parents": [
        "66d352e1e410dcea22fecb9fa9ec09dd23a62e1c"
      ],
      "author": {
        "name": "malahal@us.ibm.com",
        "email": "malahal@us.ibm.com",
        "time": "Thu Oct 30 08:51:58 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:28:42 2008 +0100"
      },
      "message": "block: optimizations in blk_rq_timed_out_timer()\n\nNow the rq-\u003edeadline can\u0027t be zero if the request is in the\ntimeout_list, so there is no need to have next_set. There is no need to\naccess a request\u0027s deadline field if blk_rq_timed_out is called on it.\n\nSigned-off-by: Malahal Naineni \u003cmalahal@us.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7838c15b8dd18e78a523513749e5b54bda07b0cb",
      "tree": "7fa295ce51f263c55756d3693f5f5ed7beb68a87",
      "parents": [
        "9c133c469d38043d5aadaa03f2fb840d88d1cf4f"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Nov 06 08:42:49 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 06 08:42:49 2008 +0100"
      },
      "message": "Block: use round_jiffies_up()\n\nThis patch (as1159b) changes the timeout routines in the block core to\nuse round_jiffies_up().  There\u0027s no point in rounding the timer\ndeadline down, since if it expires too early we will have to restart\nit.\n\nThe patch also removes some unnecessary tests when a request is\nremoved from the queue\u0027s timer list.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7ba1fbaa4a478f72fbaf5a56af9c82a77966b4c7",
      "tree": "275c1d86386d7db9fa75840363230098ca6bddd3",
      "parents": [
        "581d4e28d9195aa8b2231383dbabc288988d615e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 16 09:54:11 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: use rq complete marking in blk_abort_request()\n\nWe cannot abort a request if we raced with the timeout handler already,\nor with the IO completion. So make blk_abort_request() mark the request\nas complete, and only continue if we succeeded.\n\nFound and suggested by Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "581d4e28d9195aa8b2231383dbabc288988d615e",
      "tree": "093bcac9a538ef67edcf91826f7532bdb88e6248",
      "parents": [
        "0a0d96b03a1f3bfd6bc3ea08008699e8e59fccd9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Sep 14 05:56:33 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: add fault injection mechanism for faking request timeouts\n\nOnly works for the generic request timer handling. Allows one to\nsporadically ignore request completions, thus exercising the timeout\nhandling.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "11914a53d2ec2974a565311af327b8983d8c820d",
      "tree": "72713d2661ed56fa5d9e29203541bad32c88a3ba",
      "parents": [
        "242f9dcb8ba6f68fcd217a119a7648a4f69290e9"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Sat Sep 13 20:31:27 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "block: Add interface to abort queued requests\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "242f9dcb8ba6f68fcd217a119a7648a4f69290e9",
      "tree": "1bfe245ffbc50d204d76665cd8f90d85100f86a1",
      "parents": [
        "608aeef17a91747d6303de4df5e2c2e6899a95e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Sep 14 05:55:09 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "block: unify request timeout handling\n\nRight now SCSI and others do their own command timeout handling.\nMove those bits to the block layer.\n\nInstead of having a timer per command, we try to be a bit more clever\nand simply have one per-queue. This avoids the overhead of having to\ntear down and setup a timer for each command, so it will result in a lot\nless timer fiddling.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ]
}
