)]}'
{
  "log": [
    {
      "commit": "8af1954d172a46a63e5e79dae523a6d74715e458",
      "tree": "6142f111bb600c4bbf194209155e857fd5f83ca8",
      "parents": [
        "5baebe5c86acd6100536a466905880529f79cf1a"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 06 19:30:01 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri May 06 19:30:01 2011 -0600"
      },
      "message": "blkdev: Do not return -EOPNOTSUPP if discard is supported\n\nCurrently we return -EOPNOTSUPP in blkdev_issue_discard() if any of the\nbio fails due to underlying device not supporting discard request.\nHowever, if the device is for example dm device composed of devices\nwhich some of them support discard and some of them does not, it is ok\nfor some bios to fail with EOPNOTSUPP, but it does not mean that discard\nis not supported at all.\n\nThis commit removes the check for bios failed with EOPNOTSUPP and change\nblkdev_issue_discard() to return operation not supported if and only if\nthe device does not actually supports it, not just part of the device as\nsome bios might indicate.\n\nThis change also fixes problem with BLKDISCARD ioctl() which now works\ncorrectly on such dm devices.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nCC: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCC: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5baebe5c86acd6100536a466905880529f79cf1a",
      "tree": "6c7b4e6e170037981ea1bc094547034d3281c344",
      "parents": [
        "5dba3089ed03f84b84c6c739df8330112f04a15d"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 06 19:26:28 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri May 06 19:26:28 2011 -0600"
      },
      "message": "blkdev: Simple cleanup in blkdev_issue_zeroout()\n\nIn blkdev_issue_zeroout() we are submitting regular WRITE bios, so we do\nnot need to check for -EOPNOTSUPP specifically in case of error. Also\nthere is no need to have label submit: because there is no way to jump\nout from the while cycle without an error and we really want to exit,\nrather than try again. And also remove the check for (sz \u003d\u003d 0) since at\nthat point sz can never be zero.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCC: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nCC: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5dba3089ed03f84b84c6c739df8330112f04a15d",
      "tree": "a61a12a0a13eba03b47fe1cba76afe5ac8677992",
      "parents": [
        "900e599eb0c16390ff671652a44e0ea90532220e"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 06 19:26:27 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri May 06 19:26:27 2011 -0600"
      },
      "message": "blkdev: Submit discard bio in batches in blkdev_issue_discard()\n\nCurrently we are waiting for every submitted REQ_DISCARD bio separately,\nbut it can have unwanted consequences of repeatedly flushing the queue,\nso we rather submit bios in batches and wait for the entire batch, hence\nnarrowing the window of other ios going in.\n\nUse bio_batch_end_io() and struct bio_batch for that purpose, the same\nis used by blkdev_issue_zeroout(). Also change bio_batch_end_io() so we\nalways set !BIO_UPTODATE in the case of error and remove the check for\nbb, since we are the only user of this function and we always set this.\n\nRemove bio_get()/bio_put() from the blkdev_issue_discard() since\nbio_alloc() and bio_batch_end_io() is doing the same thing, hence it is\nnot needed anymore.\n\nI have done simple dd testing with surprising results. The script I have\nused is:\n\nfor i in $(seq 10); do\n        echo $i\n        dd if\u003d/dev/sdb1 of\u003d/dev/sdc1 bs\u003d4k \u0026\n        sleep 5\ndone\n/usr/bin/time -f %e ./blkdiscard /dev/sdc1\n\nRunning time of BLKDISCARD on the whole device:\nwith patch              without patch\n0.95                    15.58\n\nSo we can see that in this artificial test the kernel with the patch\napplied is approx 16x faster in discarding the device.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nCC: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nCC: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCC: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "eba2ed9c9636d9e7ed203a2498ed230b48341709",
      "tree": "c989fdc098b09947888f67badbfeecb1e04cd1fc",
      "parents": [
        "805f6b5e1cbfedfb9b3d354013e7f4b13a79270f"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Fri Mar 11 20:13:54 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Mar 11 20:13:54 2011 +0100"
      },
      "message": "block: remove obsolete comments for blkdev_issue_zeroout.\n\nbarrier is already removed, so remove the obsolete comments\nin blkdev_issue_zeroout.\n\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0aeea18964173715a1037034ef6838198f319319",
      "tree": "62ff402a41a675f0269bf5172d14b7db8c4e47ee",
      "parents": [
        "9179746652faf0aba07b8b7f770dcf29892a24c6"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri Mar 11 10:23:53 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Mar 11 15:36:08 2011 +0100"
      },
      "message": "block: fix mis-synchronisation in blkdev_issue_zeroout()\n\nBZ29402\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d29402\n\nWe can hit serious mis-synchronization in bio completion path of\nblkdev_issue_zeroout() leading to a panic.\n\nThe problem is that when we are going to wait_for_completion() in\nblkdev_issue_zeroout() we check if the bb.done equals issued (number of\nsubmitted bios). If it does, we can skip the wait_for_completition()\nand just out of the function since there is nothing to wait for.\nHowever, there is a ordering problem because bio_batch_end_io() is\ncalling atomic_inc(\u0026bb-\u003edone) before complete(), hence it might seem to\nblkdev_issue_zeroout() that all bios has been completed and exit. At\nthis point when bio_batch_end_io() is going to call complete(bb-\u003ewait),\nbb and wait does not longer exist since it was allocated on stack in\nblkdev_issue_zeroout() \u003d\u003d\u003e panic!\n\n(thread 1)                      (thread 2)\nbio_batch_end_io()              blkdev_issue_zeroout()\n  if(bb) {                      ...\n    if (bb-\u003eend_io)             ...\n      bb-\u003eend_io(bio, err);     ...\n    atomic_inc(\u0026bb-\u003edone);      ...\n    ...                         while (issued !\u003d atomic_read(\u0026bb.done))\n    ...                         (let issued \u003d\u003d bb.done)\n    ...                         (do the rest of the function)\n    ...                         return ret;\n    complete(bb-\u003ewait);\n    ^^^^^^^^\n    panic\n\nWe can fix this easily by simplifying bio_batch and completion counting.\n\nAlso remove bio_end_io_t *end_io since it is not used.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReported-by: Eric Whitney \u003ceric.whitney@hp.com\u003e\nTested-by: Eric Whitney \u003ceric.whitney@hp.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCC: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "291d24f6d9e7bbef81454fade8a44720665c7302",
      "tree": "8e23a24b51e9a0106cbd7e5375e53a972794b8cd",
      "parents": [
        "450adcbe518ab3a3953d8475309525d22de77cba"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Tue Mar 01 13:45:24 2011 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Mar 01 13:45:24 2011 -0500"
      },
      "message": "block: fix kernel-doc format for blkdev_issue_zeroout\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "dd3932eddf428571762596e17b65f5dc92ca361b",
      "tree": "57cec5ae2f862037f78b7e993323d77955bb6463",
      "parents": [
        "8786fb70ccb36c7cff64680bb80c46d3a09d44db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 16 20:51:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 20:52:58 2010 +0200"
      },
      "message": "block: remove BLKDEV_IFL_WAIT\n\nAll the blkdev_issue_* helpers can only sanely be used for synchronous\ncaller.  To issue cache flushes or barriers asynchronously the caller needs\nto set up a bio by itself with a completion callback to move the asynchronous\nstate machine ahead.  So drop the BLKDEV_IFL_WAIT flag that is always\nspecified when calling blkdev_issue_* and also remove the now unused flags\nargument to blkdev_issue_flush and blkdev_issue_zeroout.  For\nblkdev_issue_discard we need to keep it for the secure discard flag, which\ngains a more descriptive name and loses the bitops vs flag confusion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8c5553678237b7121355108e03c36086037d8975",
      "tree": "7ecbc41837bf2dac6010230839e3312d6d33dd35",
      "parents": [
        "31725e65c7214b52b607eba705fc4f306be4d5a5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 18 05:29:22 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:40 2010 +0200"
      },
      "message": "block: remove the BLKDEV_IFL_BARRIER flag\n\nRemove support for barriers on discards, which is unused now.  Also\nremove the DISCARD_NOBARRIER I/O type in favour of just setting the\nrw flags up locally in blkdev_issue_discard.\n\ntj: Also remove DISCARD_SECURE and use REQ_SECURE directly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8d57a98ccd0b4489003473979da8f5a1363ba7a3",
      "tree": "2982997ce66bb6a92c020b7189966c3097095fd7",
      "parents": [
        "93caf8e69eac763f6a20cf253ace8e7fc1ab7953"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed Aug 11 14:17:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:30 2010 -0700"
      },
      "message": "block: add secure discard\n\nSecure discard is the same as discard except that all copies of the\ndiscarded sectors (perhaps created by garbage collection) must also be\nerased.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nCc: Madhusudhan Chikkature \u003cmadhu.cr@ti.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18edc8eaa68070771bdb2098260e44efe74de722",
      "tree": "989c6560f5e9bf5e7156853fccb9c4e1bb30adaf",
      "parents": [
        "3383977fadc4027f20907f6208a9033cd043adab"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Fri Aug 06 13:23:25 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sun Aug 08 12:31:08 2010 -0400"
      },
      "message": "blkdev: fix blkdev_issue_zeroout return value\n\n- If function called without barrier option retvalue is incorrect\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "10d1f9e2ccfff40665a00ea0e0a0d11e54c9cbb1",
      "tree": "222c661376d8530a1bdf4e18cf5ff84267529bb3",
      "parents": [
        "f10d9f617a65905c556c3b37c9b9646ae7d04ed7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jul 15 10:49:31 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:33 2010 +0200"
      },
      "message": "block: fix problem with sending down discard that isn\u0027t of correct granularity\n\nIf the queue doesn\u0027t have a limit set, or it just set UINT_MAX like\nwe default to, we coud be sending down a discard request that isn\u0027t\nof the correct granularity if the block size is \u003e 512b.\n\nFix this by adjusting max_discard_sectors down to the proper\nalignment.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "66ac0280197981f88774e74b60c8e5f9f07c1dba",
      "tree": "d093ce493146779926df88b5831805c6f9ee14e1",
      "parents": [
        "082439004b31adc146e96e5f1c574dd2b57dcd93"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 18 16:59:42 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:23:08 2010 +0200"
      },
      "message": "block: don\u0027t allocate a payload for discard request\n\nAllocating a fixed payload for discard requests always was a horrible hack,\nand it\u0027s not coming to byte us when adding support for discard in DM/MD.\n\nSo change the code to leave the allocation of a payload to the lowlevel\ndriver.  Unfortunately that means we\u0027ll need another hack, which allows\nus to update the various block layer length fields indicating that we\nhave a payload.  Instead of hiding this in sd.c, which we already partially\ndo for UNMAP support add a documented helper in the core block layer for it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0341aafb7f3313bcedc6811a098500be85f3fc77",
      "tree": "844d674e4f4a9f5200d71f0e71f15e1e9e0daad9",
      "parents": [
        "50eaeb323a170e231263ccb433bb2f99bd9e27ac"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:28:21 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:28:21 2010 +0200"
      },
      "message": "block: fix bad use of min() on different types\n\nJust cast the page size to sector_t, that will always fit.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3f14d792f9a8fede64ce918dbb517f934497a4f8",
      "tree": "1eb1d1803ebe21c05f38bc75c70ee966701a1fe8",
      "parents": [
        "f31e7e4022841c43c53b847b86b1bf97a08b2c94"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Apr 28 17:55:09 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 28 19:47:36 2010 +0200"
      },
      "message": "blkdev: add blkdev_issue_zeroout helper function\n\n- Add bio_batch helper primitive. This is rather generic primitive\n  for submitting/waiting a complex request which consists of several\n  bios.\n- blkdev_issue_zeroout() generate number of zero filed write bios.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f31e7e4022841c43c53b847b86b1bf97a08b2c94",
      "tree": "738821236a4e84f790d597bb2cc04bd812668b6a",
      "parents": [
        "f17e232e9237c231daf9f0f4b177c61218bcb2e4"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Apr 28 17:55:08 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 28 19:47:36 2010 +0200"
      },
      "message": "blkdev: move blkdev_issue helper functions to separate file\n\nMove blkdev_issue_discard from blk-barrier.c because it is\nnot barrier related.\nLater the file will be populated by other helpers.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ]
}
