)]}'
{
  "log": [
    {
      "commit": "386bc35a2d548c28a5083b2e162a20251b37cab5",
      "tree": "14d3f0ac36cd9b56b535c3e5aa3c6ed152d6cf6b",
      "parents": [
        "65c77fd9e8a1c8c3da0bbbea6b7efa3d6ef265f8"
      ],
      "author": {
        "name": "Anna Leuschner",
        "email": "anna.m.leuschner@gmail.com",
        "time": "Mon Oct 22 21:53:36 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Oct 22 22:00:26 2012 +0200"
      },
      "message": "vfs: fix: don\u0027t increase bio_slab_max if krealloc() fails\n\nWithout the patch, bio_slab_max, representing bio_slabs capacity, is increased before krealloc() of bio_slabs. If krealloc() fails, bio_slab_max is too high. Fix that by only updating bio_slab_max if krealloc() is successful.\n\nSigned-off-by: Anna Leuschner \u003canna.m.leuschner@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "02f3939e1a9357b7c370a4a69717cf9c02452737",
      "tree": "e7cc574ca11f44ccdf6a685dc45a9a1eede1f2cd",
      "parents": [
        "232f1b51062553b7cf49f99719fbd1b8a8d80f29"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Fri Sep 28 10:38:48 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Sep 28 10:38:48 2012 +0200"
      },
      "message": "block: makes bio_split support bio without data\n\ndiscard bio hasn\u0027t data attached. We hit a BUG_ON with such bio. This makes\nbio_split works for such bio.\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4363ac7c13a9a4b763c6e8d9fdbfc2468f3b8ca4",
      "tree": "010b05699eb9544b9cdfe5e1b3affdaea80132e7",
      "parents": [
        "f31dc1cd490539e2b62a126bc4dc2495b165d772"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Sep 18 12:19:27 2012 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Sep 20 14:31:45 2012 +0200"
      },
      "message": "block: Implement support for WRITE SAME\n\nThe WRITE SAME command supported on some SCSI devices allows the same\nblock to be efficiently replicated throughout a block range. Only a\nsingle logical block is transferred from the host and the storage device\nwrites the same data to all blocks described by the I/O.\n\nThis patch implements support for WRITE SAME in the block layer. The\nblkdev_issue_write_same() function can be used by filesystems and block\ndrivers to replicate a buffer across a block range. This can be used to\nefficiently initialize software RAID devices, etc.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "bf800ef1816b4283a885e55ad38068aec9711e4d",
      "tree": "c99cbe70b68ede65b478b3006a7ed7e34b453f3d",
      "parents": [
        "3f86a82aeb03e6100f7ab39f4702e033a5e38166"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Sep 06 15:35:02 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Sep 09 10:35:39 2012 +0200"
      },
      "message": "block: Add bio_clone_bioset(), bio_clone_kmalloc()\n\nPreviously, there was bio_clone() but it only allocated from the fs bio\nset; as a result various users were open coding it and using\n__bio_clone().\n\nThis changes bio_clone() to become bio_clone_bioset(), and then we add\nbio_clone() and bio_clone_kmalloc() as wrappers around it, making use of\nthe functionality the last patch adedd.\n\nThis will also help in a later patch changing how bio cloning works.\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCC: Jens Axboe \u003caxboe@kernel.dk\u003e\nCC: NeilBrown \u003cneilb@suse.de\u003e\nCC: Alasdair Kergon \u003cagk@redhat.com\u003e\nCC: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCC: Jeff Garzik \u003cjeff@garzik.org\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3f86a82aeb03e6100f7ab39f4702e033a5e38166",
      "tree": "6d598b5b55c78828f13aee9baffe7350ae18c274",
      "parents": [
        "4254bba17d92d53822a56ebc2a0c1eb7e2a71155"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Sep 06 15:35:01 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Sep 09 10:35:39 2012 +0200"
      },
      "message": "block: Consolidate bio_alloc_bioset(), bio_kmalloc()\n\nPreviously, bio_kmalloc() and bio_alloc_bioset() behaved slightly\ndifferent because there was some almost-duplicated code - this fixes\nsome of that.\n\nThe important change is that previously bio_kmalloc() always set\nbi_io_vec \u003d bi_inline_vecs, even if nr_iovecs \u003d\u003d 0 - unlike\nbio_alloc_bioset(). This would cause bio_has_data() to return true; I\ndon\u0027t know if this resulted in any actual bugs but it was certainly\nwrong.\n\nbio_kmalloc() and bio_alloc_bioset() also have different arbitrary\nlimits on nr_iovecs - 1024 (UIO_MAXIOV) for bio_kmalloc(), 256\n(BIO_MAX_PAGES) for bio_alloc_bioset(). This patch doesn\u0027t fix that, but\nat least they\u0027re enforced closer together and hopefully they will be\nfixed in a later patch.\n\nThis\u0027ll also help with some future cleanups - there are a fair number of\nfunctions that allocate bios (e.g. bio_clone()), and now they don\u0027t have\nto be duplicated for bio_alloc(), bio_alloc_bioset(), and bio_kmalloc().\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCC: Jens Axboe \u003caxboe@kernel.dk\u003e\nv7: Re-add dropped comments, improv patch description\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4254bba17d92d53822a56ebc2a0c1eb7e2a71155",
      "tree": "77668d39949a0751c5e9ef8d0fb47b96392e84e5",
      "parents": [
        "ccc5c9ca6aac08218b1ba52afd07a1a9864c8c5d"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Sep 06 15:35:00 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Sep 09 10:35:39 2012 +0200"
      },
      "message": "block: Kill bi_destructor\n\nNow that we\u0027ve got generic code for freeing bios allocated from bio\npools, this isn\u0027t needed anymore.\n\nThis patch also makes bio_free() static, since without bi_destructor\nthere should be no need for it to be called anywhere else.\n\nbio_free() is now only called from bio_put, so we can refactor those a\nbit - move some code from bio_put() to bio_free() and kill the redundant\nbio-\u003ebi_next \u003d NULL.\n\nv5: Switch to BIO_KMALLOC_POOL ((void *)~0), per Boaz\nv6: BIO_KMALLOC_POOL now NULL, drop bio_free\u0027s EXPORT_SYMBOL\nv7: No #define BIO_KMALLOC_POOL anymore\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCC: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f44b48c7691be7643877d1f881b5eeace654d05d",
      "tree": "a862b4844b99abfa1bfb6fd437cf1ee4f055c438",
      "parents": [
        "94818742316e27d01506240cf8b07d69844d31af"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Sep 06 15:34:58 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Sep 09 10:35:39 2012 +0200"
      },
      "message": "block: Add bio_reset()\n\nReusing bios is something that\u0027s been highly frowned upon in the past,\nbut driver code keeps doing it anyways. If it\u0027s going to happen anyways,\nwe should provide a generic method.\n\nThis\u0027ll help with getting rid of bi_destructor - drivers/block/pktcdvd.c\nwas open coding it, by doing a bio_init() and resetting bi_destructor.\n\nThis required reordering struct bio, but the block layer is not yet\nnearly fast enough for any cacheline effects to matter here.\n\nv5: Add a define BIO_RESET_BITS, to be very explicit about what parts of\nbio-\u003ebi_flags are saved.\nv6: Further commenting verbosity, per Tejun\nv9: Add a function comment\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCC: Jens Axboe \u003caxboe@kernel.dk\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "1e2a410ff71504a64d1af2e354287ac51aeac1b0",
      "tree": "e4ae4669d958fc932e5ae67cafd8de860f1f91c9",
      "parents": [
        "395c72a707d966b36d5a42fe12c3a237ded3a0d9"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Sep 06 15:34:56 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Sep 09 10:35:38 2012 +0200"
      },
      "message": "block: Ues bi_pool for bio_integrity_alloc()\n\nNow that bios keep track of where they were allocated from,\nbio_integrity_alloc_bioset() becomes redundant.\n\nRemove bio_integrity_alloc_bioset() and drop bio_set argument from the\nrelated functions and make them use bio-\u003ebi_pool.\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCC: Jens Axboe \u003caxboe@kernel.dk\u003e\nCC: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "395c72a707d966b36d5a42fe12c3a237ded3a0d9",
      "tree": "79e4450a4f31409815d80ee8e1a7e1490a140f22",
      "parents": [
        "eeea3ac912207dcf759b95b2b4c36f96bce583bf"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Sep 06 15:34:55 2012 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Sep 09 10:35:38 2012 +0200"
      },
      "message": "block: Generalized bio pool freeing\n\nWith the old code, when you allocate a bio from a bio pool you have to\nimplement your own destructor that knows how to find the bio pool the\nbio was originally allocated from.\n\nThis adds a new field to struct bio (bi_pool) and changes\nbio_alloc_bioset() to use it. This makes various bio destructors\nunnecessary, so they\u0027re then deleted.\n\nv6: Explain the temporary if statement in bio_put\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCC: Jens Axboe \u003caxboe@kernel.dk\u003e\nCC: NeilBrown \u003cneilb@suse.de\u003e\nCC: Alasdair Kergon \u003cagk@redhat.com\u003e\nCC: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCC: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a7e546f175f07630453c44b5afe14dd667dcfec9",
      "tree": "352c2577161f0cbe8c3b49bb6f053cfd49ed32b4",
      "parents": [
        "da31ce727e8cc6920de5840e35b4e770c08e86e3",
        "676ce6d5ca3098339c028d44fe0427d1566a4d2d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 25 11:36:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 25 11:36:43 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\nPull block-related fixes from Jens Axboe:\n\n - Improvements to the buffered and direct write IO plugging from\n   Fengguang.\n\n - Abstract out the mapping of a bio in a request, and use that to\n   provide a blk_bio_map_sg() helper.  Useful for mapping just a bio\n   instead of a full request.\n\n - Regression fix from Hugh, fixing up a patch that went into the\n   previous release cycle (and marked stable, too) attempting to prevent\n   a loop in __getblk_slow().\n\n - Updates to discard requests, fixing up the sizing and how we align\n   them.  Also a change to disallow merging of discard requests, since\n   that doesn\u0027t really work properly yet.\n\n - A few drbd fixes.\n\n - Documentation updates.\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: replace __getblk_slow misfix by grow_dev_page fix\n  drbd: Write all pages of the bitmap after an online resize\n  drbd: Finish requests that completed while IO was frozen\n  drbd: fix drbd wire compatibility for empty flushes\n  Documentation: update tunable options in block/cfq-iosched.txt\n  Documentation: update tunable options in block/cfq-iosched.txt\n  Documentation: update missing index files in block/00-INDEX\n  block: move down direct IO plugging\n  block: remove plugging at buffered write time\n  block: disable discard request merge temporarily\n  bio: Fix potential memory leak in bio_find_or_create_slab()\n  block: Don\u0027t use static to define \"void *p\" in show_partition_start()\n  block: Add blk_bio_map_sg() helper\n  block: Introduce __blk_segment_map_sg() helper\n  fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices\n  block: split discard into aligned requests\n  block: reorganize rounding of max_discard_sectors\n"
    },
    {
      "commit": "389d7b26d9e4f78b17366c23a3aa16b3c5cb3bde",
      "tree": "7add3d139c36f1e367a5d120b2552e5daeb3bcdb",
      "parents": [
        "0676806707281e27b13d44323bed580a8160b7a4"
      ],
      "author": {
        "name": "Alexey Khoroshilov",
        "email": "khoroshilov@ispras.ru",
        "time": "Thu Aug 09 15:19:25 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 09 15:19:25 2012 +0200"
      },
      "message": "bio: Fix potential memory leak in bio_find_or_create_slab()\n\nDo not leak memory by updating pointer with potentially NULL realloc return value.\n\nFound by Linux Driver Verification project (linuxtesting.org).\n\nSigned-off-by: Alexey Khoroshilov \u003ckhoroshilov@ispras.ru\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "0d5c3eba2e1e5aa74e097f49bc90b58f607e101c",
      "tree": "09463050b4738e380ea7d9fa32d607e7fb2040bb",
      "parents": [
        "12810ad70858af10f5e00b3c178085c03baa457b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jul 25 18:12:08 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Aug 04 12:15:37 2012 +0400"
      },
      "message": "vfs: nuke pdflush from comments\n\nThe pdflush thread is long gone, so this patch removes references to pdflush\nfrom vfs comments.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0d167518e045cc8bb63f0a8a0a85ad4fa4e0044f",
      "tree": "101a9b5d425d79f663e4f25f1e90b7a8cc6604f1",
      "parents": [
        "2f83766d4b18774c856329a8fca4c9338dfeda39",
        "ff26eaadf4d914e397872b99885d45756104e9ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 08:52:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 08:52:42 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5/core\u0027 of git://git.kernel.dk/linux-block\n\nMerge block/IO core bits from Jens Axboe:\n \"This is a bit bigger on the core side than usual, but that is purely\n  because we decided to hold off on parts of Tejun\u0027s submission on 3.4\n  to give it a bit more time to simmer.  As a consequence, it\u0027s seen a\n  long cycle in for-next.\n\n  It contains:\n\n   - Bug fix from Dan, wrong locking type.\n   - Relax splice gifting restriction from Eric.\n   - A ton of updates from Tejun, primarily for blkcg.  This improves\n     the code a lot, making the API nicer and cleaner, and also includes\n     fixes for how we handle and tie policies and re-activate on\n     switches.  The changes also include generic bug fixes.\n   - A simple fix from Vivek, along with a fix for doing proper delayed\n     allocation of the blkcg stats.\"\n\nFix up annoying conflict just due to different merge resolution in\nDocumentation/feature-removal-schedule.txt\n\n* \u0027for-3.5/core\u0027 of git://git.kernel.dk/linux-block: (92 commits)\n  blkcg: tg_stats_alloc_lock is an irq lock\n  vmsplice: relax alignement requirements for SPLICE_F_GIFT\n  blkcg: use radix tree to index blkgs from blkcg\n  blkcg: fix blkcg-\u003ecss ref leak in __blkg_lookup_create()\n  block: fix elvpriv allocation failure handling\n  block: collapse blk_alloc_request() into get_request()\n  blkcg: collapse blkcg_policy_ops into blkcg_policy\n  blkcg: embed struct blkg_policy_data in policy specific data\n  blkcg: mass rename of blkcg API\n  blkcg: style cleanups for blk-cgroup.h\n  blkcg: remove blkio_group-\u003epath[]\n  blkcg: blkg_rwstat_read() was missing inline\n  blkcg: shoot down blkgs if all policies are deactivated\n  blkcg: drop stuff unused after per-queue policy activation update\n  blkcg: implement per-queue policy activation\n  blkcg: add request_queue-\u003eroot_blkg\n  blkcg: make request_queue bypassing on allocation\n  blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing\n  blkcg: make blkg_conf_prep() take @pol and return with queue lock held\n  blkcg: remove static policy ID enums\n  ...\n"
    },
    {
      "commit": "f908ee9463b09ddd05e1c1a0111132212dc05fac",
      "tree": "af80b227ec2049aa23fc3a8867e70fd685a4d34a",
      "parents": [
        "080399aaaf3531f5b8761ec0ac30ff98891e8686"
      ],
      "author": {
        "name": "Bernd Schubert",
        "email": "bernd.schubert@itwm.fraunhofer.de",
        "time": "Fri May 11 16:36:44 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri May 11 16:45:12 2012 +0200"
      },
      "message": "bio allocation failure due to bio_get_nr_vecs()\n\nThe number of bio_get_nr_vecs() is passed down via bio_alloc() to\nbvec_alloc_bs(), which fails the bio allocation if\nnr_iovecs \u003e BIO_MAX_PAGES. For the underlying caller this causes an\nunexpected bio allocation failure.\nLimiting to queue_max_segments() is not sufficient, as max_segments\nalso might be very large.\n\nbvec_alloc_bs(gfp_mask, nr_iovecs, ) \u003d\u003e NULL when nr_iovecs  \u003e BIO_MAX_PAGES\nbio_alloc_bioset(gfp_mask, nr_iovecs, ...)\nbio_alloc(GFP_NOIO, nvecs)\nxfs_alloc_ioend_bio()\n\nSigned-off-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "959d851caa48829eb85cb85aa949fd6b4c5d5bc6",
      "tree": "3ba9c94ec346275fb44c4f0d1cd2537cdff8d811",
      "parents": [
        "a5567932fc926739e29e98487128080f40c61710",
        "48ddbe194623ae089cc0576e60363f2d2e85662a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:30:01 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:55:00 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5\u0027 of ../cgroup into block/for-3.5/core-merged\n\ncgroup/for-3.5 contains the following changes which blk-cgroup needs\nto proceed with the on-going cleanup.\n\n* Dynamic addition and removal of cftypes to make config/stat file\n  handling modular for policies.\n\n* cgroup removal update to not wait for css references to drain to fix\n  blkcg removal hang caused by cfq caching cfqgs.\n\nPull in cgroup/for-3.5 into block/for-3.5/core.  This causes the\nfollowing conflicts in block/blk-cgroup.c.\n\n* 761b3ef50e \"cgroup: remove cgroup_subsys argument from callbacks\"\n  conflicts with blkiocg_pre_destroy() addition and blkiocg_attach()\n  removal.  Resolved by removing @subsys from all subsys methods.\n\n* 676f7c8f84 \"cgroup: relocate cftype and cgroup_subsys definitions in\n  controllers\" conflicts with -\u003epre_destroy() and -\u003eattach() updates\n  and removal of modular config.  Resolved by dropping forward\n  declarations of the methods and applying updates to the relocated\n  blkio_subsys.\n\n* 4baf6e3325 \"cgroup: convert all non-memcg controllers to the new\n  cftype interface\" builds upon the previous item.  Resolved by adding\n  -\u003ebase_cftypes to the relocated blkio_subsys.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "852c788f8365062c8a383c5a93f7f7289977cb50",
      "tree": "561b69e7f2b6bcc16de165b3b988990de7913615",
      "parents": [
        "f6e8d01bee036460e03bd4f6a79d014f98ba712e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 05 13:15:27 2012 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Mar 06 21:27:24 2012 +0100"
      },
      "message": "block: implement bio_associate_current()\n\nIO scheduling and cgroup are tied to the issuing task via io_context\nand cgroup of %current.  Unfortunately, there are cases where IOs need\nto be routed via a different task which makes scheduling and cgroup\nlimit enforcement applied completely incorrectly.\n\nFor example, all bios delayed by blk-throttle end up being issued by a\ndelayed work item and get assigned the io_context of the worker task\nwhich happens to serve the work item and dumped to the default block\ncgroup.  This is double confusing as bios which aren\u0027t delayed end up\nin the correct cgroup and makes using blk-throttle and cfq propio\ntogether impossible.\n\nAny code which punts IO issuing to another task is affected which is\ngetting more and more common (e.g. btrfs).  As both io_context and\ncgroup are firmly tied to task including userland visible APIs to\nmanipulate them, it makes a lot of sense to match up tasks to bios.\n\nThis patch implements bio_associate_current() which associates the\nspecified bio with %current.  The bio will record the associated ioc\nand blkcg at that point and block layer will use the recorded ones\nregardless of which task actually ends up issuing the bio.  bio\nrelease puts the associated ioc and blkcg.\n\nIt grabs and remembers ioc and blkcg instead of the task itself\nbecause task may already be dead by the time the bio is issued making\nioc and blkcg inaccessible and those are all block layer cares about.\n\nelevator_set_req_fn() is updated such that the bio elvdata is being\nallocated for is available to the elevator.\n\nThis doesn\u0027t update block cgroup policies yet.  Further patches will\nimplement the support.\n\n-v2: #ifdef CONFIG_BLK_CGROUP added around bio-\u003ebi_ioc dereference in\n     rq_ioc() to fix build breakage.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Kent Overstreet \u003ckoverstreet@google.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "630d9c47274aa89bfa77fe6556d7818bdcb12992",
      "tree": "501b418c3c89d4c80113aa2fdbbc917eedacd2d4",
      "parents": [
        "13ae246db4a02971ef4f557af1f6d3e21d64b710"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 16 23:57:37 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Tue Feb 28 19:31:58 2012 -0500"
      },
      "message": "fs: reduce the use of module.h wherever possible\n\nFor files only using THIS_MODULE and/or EXPORT_SYMBOL, map\nthem onto including export.h -- or if the file isn\u0027t even\nusing those, then just delete the include.  Fix up any implicit\ninclude dependencies that were being masked by module.h along\nthe way.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "5abebfdd02450fa1349daacf242e70b3736581e3",
      "tree": "6dc62283b65c71fc22c643635c773fef42d9a978",
      "parents": [
        "4609dff6b5d11e1ed5ff935e15f9f6022acb312b"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "kent.overstreet@gmail.com",
        "time": "Wed Feb 08 22:07:18 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 08 22:07:18 2012 +0100"
      },
      "message": "bio: don\u0027t overflow in bio_get_nr_vecs()\n\nThere were two places bio_get_nr_vecs() could overflow:\n\nFirst, it did a left shift to convert from sectors to bytes immediately\nbefore dividing by PAGE_SIZE.  If PAGE_SIZE ever was less than 512 a great\nmany things would break, so dividing by PAGE_SIZE \u003e\u003e 9 is safe and will\ngenerate smaller code too.\n\nThe nastier overflow was in the DIV_ROUND_UP() (that\u0027s what the code was\neffectively doing, anyways).  If n + d overflowed, the whole thing would\nreturn 0 which breaks things rather effectively.\n\nbio_get_nr_vecs() doesn\u0027t claim to give an exact value anyways, so the\nDIV_ROUND_UP() is silly; we could do a straight divide except if a\ndevice\u0027s queue_max_sectors was less than PAGE_SIZE we\u0027d return 0.  So we\njust add 1; this should always be safe - things will break badly if\nbio_get_nr_vecs() returns \u003e BIO_MAX_PAGES (bio_alloc() will suddenly start\nfailing) but it\u0027s queue_max_segments that must guard against this, if\nqueue_max_sectors is preventing this from happen things are going to\nexplode on architectures with different PAGE_SIZE.\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "121f099412bd6576dfb3d94222e89d9341362177",
      "tree": "47b82e98cb879d4cf08f0465ade31d58833cf53c",
      "parents": [
        "3540d5e89b2ac268fcfc9b07a50a9ba4acc2e5e5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Nov 16 09:21:50 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Nov 16 09:21:50 2011 +0100"
      },
      "message": "bio: change some signed vars to unsigned\n\nThis is just a cleanup patch to silence a static checker warning.\n\nThe problem is that we cap \"nr_iovecs\" so it can\u0027t be larger than\n\"UIO_MAXIOV\" but we don\u0027t check for negative values.  It turns out this is\nprevented at other layers, but logically it doesn\u0027t make sense to have\nnegative nr_iovecs so making it unsigned is nicer.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "9562ad9ab36df7ccef920d119f3b5100025db95f",
      "tree": "b5e32ca469cbefca4122c1a08db80cdb12e655fb",
      "parents": [
        "e890413af4c2dfebf5432ef30cc70cb11dad3213"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 24 16:11:30 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Oct 24 16:11:30 2011 +0200"
      },
      "message": "block: Remove the control of complete cpu from bio.\n\nbio originally has the functionality to set the complete cpu, but\nit is broken.\n\nChirstoph said that \"This code is unused, and from the all the\ndiscussions lately pretty obviously broken.  The only thing keeping\nit serves is creating more confusion and possibly more bugs.\"\n\nAnd Jens replied with \"We can kill bio_set_completion_cpu(). I\u0027m fine\nwith leaving cpu control to the request based drivers, they are the\nonly ones that can toggle the setting anyway\".\n\nSo this patch tries to remove all the work of controling complete cpu\nfrom a bio.\n\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "c642808454ac81d6a6701da6022e93bbe47bb38b",
      "tree": "0367c04b6fb5f43cb117d4bac1d2bf39db08495f",
      "parents": [
        "55b23bde19c08f14127a27d461a4e079942c7258"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@kernel.org",
        "time": "Fri May 27 14:52:09 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 27 09:43:00 2011 -0400"
      },
      "message": "vfs: Improve the bio_add_page() and bio_add_pc_page() descriptions\n\nThe descriptions of bio_add_page() and bio_add_pc_page() are slightly\ninconsistent; improve them.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@kernel.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\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": "80cdc6dae76ea67d2b21bdca8df17ef47251eb8b",
      "tree": "b776fd2d32f4262526de9f4ed907c1b9406bce91",
      "parents": [
        "3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Mar 22 16:33:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "fs: use appropriate printk priority levels\n\nprintk()s without a priority level default to KERN_WARNING.  To reduce\nnoise at KERN_WARNING, this patch set the priority level appriopriately\nfor unleveled printks()s.  This should be useful to folks that look at\ndmesg warnings closely.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a91a2785b200864aef2270ed6a3babac7a253a20",
      "tree": "3d21d7ef82ddabbdbfb74499d68a73f15adc819f",
      "parents": [
        "82f04ab47e1d94d78503591a7460b2cad9601ede"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Mar 17 11:11:05 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 11:11:05 2011 +0100"
      },
      "message": "block: Require subsystems to explicitly allocate bio_set integrity mempool\n\nMD and DM create a new bio_set for every metadevice. Each bio_set has an\nintegrity mempool attached regardless of whether the metadevice is\ncapable of passing integrity metadata. This is a waste of memory.\n\nInstead we defer the allocation decision to MD and DM since we know at\nmetadevice creation time whether integrity passthrough is needed or not.\n\nAutomatic integrity mempool allocation can then be removed from\nbioset_create() and we make an explicit integrity allocation for the\nfs_bio_set.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nReported-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnizer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "df677140281beb608f6748c341af7612f7bfe7a0",
      "tree": "db977b703e36487ce956cc120bb021565810734f",
      "parents": [
        "de701c74a34005e637e1ca2634fbf28fd1debba2"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Mar 08 08:28:01 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Mar 08 08:28:01 2011 +0100"
      },
      "message": "block: biovec_slab vs. CONFIG_BLK_DEV_INTEGRITY\n\nThe block integrity subsystem no longer uses the bio_vec slabs so this\ncode can safely be compiled in.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "cb4644cac4a2797afc847e6c92736664d4b0ea34",
      "tree": "14170d74d5040be49af14b484f252d888141a99f",
      "parents": [
        "f3f63c1c28bc861a931fac283b5bc3585efb8967"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:36:25 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:40:43 2010 +0100"
      },
      "message": "bio: take care not overflow page count when mapping/copying user data\n\nIf the iovec is being set up in a way that causes uaddr + PAGE_SIZE\nto overflow, we could end up attempting to map a huge number of\npages. Check for this invalid input type.\n\nReported-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f3f63c1c28bc861a931fac283b5bc3585efb8967",
      "tree": "79c05b76488d9595bbb365b8185842357f8b3eec",
      "parents": [
        "9f864c80913467312c7b8690e41fb5ebd1b50e92"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 29 11:46:56 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:40:42 2010 +0100"
      },
      "message": "block: limit vec count in bio_kmalloc() and bio_alloc_map_data()\n\nReported-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b6d91daee5cac6402186ff224c3af39d79f4a0e",
      "tree": "b1518cf0b6c301178e0a320f80610cd5b3aa7625",
      "parents": [
        "33659ebbae262228eef4e0fe990f393d1f0ed941"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "message": "block: unify flags for struct bio and struct request\n\nRemove the current bio flags and reuse the request flags for the bio, too.\nThis allows to more easily trace the type of I/O from the filesystem\ndown to the block driver.  There were two flags in the bio that were\nmissing in the requests:  BIO_RW_UNPLUG and BIO_RW_AHEAD.  Also I\u0027ve\nrenamed two request flags that had a superflous RW in them.\n\nNote that the flags are in bio.h despite having the REQ_ name - as\nblkdev.h includes bio.h that is the only way to go for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b4b7a4ef097f288f724420b473dbf92a89c0ab7e",
      "tree": "23ad8101e3e77c32a8d1e1b95a9c1cd7f7a475b7",
      "parents": [
        "e9ce335df51ff782035a15c261a3c0c9892a1767",
        "a3d3203e4bb40f253b1541e310dc0f9305be7c84"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 19 08:05:10 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 19 08:05:10 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n\nConflicts:\n\tblock/Kconfig\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "8bf8c376ab2eefaf0386f4e003e720e1434fa43d",
      "tree": "a0e535bb31aba8e1998c2017086816f928820808",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Mar 03 06:28:06 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Mar 08 09:10:38 2010 +0100"
      },
      "message": "blkdev: fix merge_bvec_fn return value checks v2\n\nmerge_bvec_fn() returns bvec-\u003ebv_len on success. So we have to check\nagainst this value. But in case of fs_optimization merge we compare\nwith wrong value. This patch must be included in\n b428cd6da7e6559aca69aa2e3a526037d3f20403\nBut accidentally i\u0027ve forgot to add this in the initial patch.\nTo make things straight let\u0027s replace all such checks.\nIn fact this makes code easy to understand.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9599945bac93b344519ea97f502cf537124b5a6e",
      "tree": "34cdb436a1104e25814638f893e82b07dcb573e8",
      "parents": [
        "13dda80e48439b446d0bc9bab34b91484bc8f533"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 02 19:17:34 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 02 19:17:34 2010 +0100"
      },
      "message": "Revert \"blkdev: fix merge_bvec_fn return value checks\"\n\nThis reverts commit 9f7cdbc33f36d28e57eaba0093f68f0d14c38c5b.\n\nIt\u0027s causing oopses om dm setups, so revert it until we investigate.\n\nReported-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9f7cdbc33f36d28e57eaba0093f68f0d14c38c5b",
      "tree": "80de133204ea1b3847fd93f17c8356c9d4d6bd5e",
      "parents": [
        "53c583d2269851de9df1c2e992cb2f7f124a5f55"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Feb 27 20:35:12 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Feb 28 19:47:18 2010 +0100"
      },
      "message": "blkdev: fix merge_bvec_fn return value checks\n\nmerge_bvec_fn() returns bvec-\u003ebv_len on success. So we have to check\nagainst this value. But in case of fs_optimization merge we compare\nwith wrong value. This patch must be included in\n b428cd6da7e6559aca69aa2e3a526037d3f20403\nBut accidentally i\u0027ve forgot to add this in the initial patch.\nTo make things straight let\u0027s replace all such checks.\nIn fact this makes code easy to understand.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8a78362c4eefc1deddbefe2c7f38aabbc2429d6b",
      "tree": "c095d95af1aec0f9cee5975b1dcdc6bc1d17d401",
      "parents": [
        "086fa5ff0854c676ec333760f4c0154b3b242616"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:39 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Consolidate phys_segment and hw_segment limits\n\nExcept for SCSI no device drivers distinguish between physical and\nhardware segment limits.  Consolidate the two into a single segment\nlimit.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "db18efac0bd644e4b7af757394ca0bef8d91dcee",
      "tree": "bffe9f3b834f50cbd1cb0cf778eb58ef34dbe56d",
      "parents": [
        "6382dc334064bb0b41a95df0e3c438de35f2ffb7"
      ],
      "author": {
        "name": "Jaak Ristioja",
        "email": "Ristioja@gmail.com",
        "time": "Fri Jan 15 12:05:07 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:36 2010 +0100"
      },
      "message": "bio: Fix outdated comment about bio_alloc_bioset()\n\nIn commit 451a9ebf653d28337ba53ed5b4b70b0b9543cca1 bio_alloc_bioset()\nwas refactored not to take NULL as a valid argument for bs. This patch\nchanges the comment for that function accordingly. Currently, passing\nNULL as argument to parameter bs would result in a NULL pointer\ndereference.\n\nSigned-off-by: Jaak Ristioja \u003cristioja@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "1d6165851cd8e3f919d446cd6da35dee44e8837e",
      "tree": "a9d68cfc0e838490d12963aa917ef78a54ae2073",
      "parents": [
        "c84a301d4a4b1cc382a6549b4e7881ce5b796d63"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Jan 27 22:44:36 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jan 28 15:08:29 2010 +0100"
      },
      "message": "block: fix bio_add_page for non trivial merge_bvec_fn case\n\nWe have to properly decrease bi_size in order to merge_bvec_fn return\nright result.  Otherwise this result in false merge rejects for two\nabsolutely valid bio_vecs.  This may cause significant performance\npenalty for example fs_block_size \u003d\u003d 1k and block device is raid0 with\nsmall chunk_size \u003d 8k. Then it is impossible to merge 7-th fs-block in\nto bio which already has 6 fs-blocks.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f06f135d8642e2f6812cfcb4ea8e4e9122d4d58c",
      "tree": "efef71a7083eda0c471a1c5aebb9132e37b61ade",
      "parents": [
        "2705ca7959111882097da1ebbe401d5566780904"
      ],
      "author": {
        "name": "Thiago Farina",
        "email": "tfransosi@gmail.com",
        "time": "Tue Jan 19 14:07:09 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jan 19 14:07:09 2010 +0100"
      },
      "message": "fs/bio.c: fix shadows sparse warning\n\nfs/bio.c:81:33: warning: symbol \u0027bslab\u0027 shadows an earlier one\nfs/bio.c:74:25: originally declared here\n\nSigned-off-by: Thiago Farina \u003ctfransosi@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2d4dc890b5c8fabd818a8586607e6843c4375e62",
      "tree": "9976ed7b0eed0056f8289aeb6a2b0abf8c940454",
      "parents": [
        "3586e917f2c7df769d173c4ec99554cb40a911e5"
      ],
      "author": {
        "name": "Ilya Loginov",
        "email": "isloginov@gmail.com",
        "time": "Thu Nov 26 09:16:19 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 09:16:19 2009 +0100"
      },
      "message": "block: add helpers to run flush_dcache_page() against a bio and a request\u0027s pages\n\nMtdblock driver doesn\u0027t call flush_dcache_page for pages in request.  So,\nthis causes problems on architectures where the icache doesn\u0027t fill from\nthe dcache or with dcache aliases.  The patch fixes this.\n\nThe ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE symbol was introduced to avoid\npointless empty cache-thrashing loops on architectures for which\nflush_dcache_page() is a no-op.  Every architecture was provided with this\nflush pages on architectires where ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE is\nequal 1 or do nothing otherwise.\n\nSee \"fix mtd_blkdevs problem with caches on some architectures\" discussion\non LKML for more information.\n\nSigned-off-by: Ilya Loginov \u003cisloginov@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Peter Horton \u003cphorton@bitbox.co.uk\u003e\nCc: \"Ed L. Cashin\" \u003cecashin@coraid.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5f04eeb8a76521dec371ceb05e8263889a8af2bc",
      "tree": "ec69a41f4e6258994aee7720bdee645ad569bc73",
      "parents": [
        "ad0bf11070ebb3c95f8ce82e6219dbd79c8e8b69"
      ],
      "author": {
        "name": "Alberto Bertogli",
        "email": "albertito@blitiri.com.ar",
        "time": "Mon Nov 02 11:39:42 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Nov 02 11:41:13 2009 +0100"
      },
      "message": "Fix bio_alloc() and bio_kmalloc() documentation\n\nCommit 451a9ebf accidentally broke bio_alloc() and bio_kmalloc() comments by\n(almost) swapping them.\n\nThis patch fixes that, by placing the comments in the right place.\n\nSigned-off-by: Alberto Bertogli \u003calbertito@blitiri.com.ar\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ad0bf11070ebb3c95f8ce82e6219dbd79c8e8b69",
      "tree": "a26200377bc006a0a12f33d232ed0e19b87eb618",
      "parents": [
        "b6727b12dd2ffb4a890eb5b13a298230c29ba45d"
      ],
      "author": {
        "name": "Alberto Bertogli",
        "email": "albertito@blitiri.com.ar",
        "time": "Mon Nov 02 11:39:22 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Nov 02 11:39:22 2009 +0100"
      },
      "message": "bio_put(): add bio_clone() to the list of functions in the comment\n\nIn bio_put()\u0027s comment, add bio_clone() to the list of functions that can\ngive you a bio reference.\n\nSigned-off-by: Alberto Bertogli \u003calbertito@blitiri.com.ar\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a112a71d45b5e40c3cf07371d20a4a5079a72610",
      "tree": "7e55b5d47be8d3c8189ff7d0bece65b46c8bd0e5",
      "parents": [
        "48c0d4d4c04dd520c55e0fd756fa4e7c83de3d13"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hsweeten@visionengravers.com",
        "time": "Sat Sep 26 16:19:21 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:15:46 2009 +0200"
      },
      "message": "fs/bio.c: move EXPORT* macros to line after function\n\nAs mentioned in Documentation/CodingStyle, move EXPORT* macro\u0027s\nto the line immediately after the closing function brace line.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ecb554a846f8e9d2a58f6d6c118168a63ac065aa",
      "tree": "c52b265969972d5df0fe104110bc5cbfb220f3a7",
      "parents": [
        "76da03467a1a78811777561bbb1fa56175ee4778"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Jul 09 14:46:53 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "block: fix sg SG_DXFER_TO_FROM_DEV regression\n\nI overlooked SG_DXFER_TO_FROM_DEV support when I converted sg to use\nthe block layer mapping API (2.6.28).\n\nDouglas Gilbert explained SG_DXFER_TO_FROM_DEV:\n\nhttp://www.spinics.net/lists/linux-scsi/msg37135.html\n\n\u003d\nThe semantics of SG_DXFER_TO_FROM_DEV were:\n   - copy user space buffer to kernel (LLD) buffer\n   - do SCSI command which is assumed to be of the DATA_IN\n     (data from device) variety. This would overwrite\n     some or all of the kernel buffer\n   - copy kernel (LLD) buffer back to the user space.\n\nThe idea was to detect short reads by filling the original\nuser space buffer with some marker bytes (\"0xec\" it would\nseem in this report). The \"resid\" value is a better way\nof detecting short reads but that was only added this century\nand requires co-operation from the LLD.\n\u003d\n\nThis patch changes the block layer mapping API to support this\nsemantics. This simply adds another field to struct rq_map_data and\nenables __bio_copy_iov() to copy data from user space even with READ\nrequests.\n\nIt\u0027s better to add the flags field and kills null_mapped and the new\nfrom_user fields in struct rq_map_data but that approach makes it\ndifficult to send this patch to stable trees because st and osst\ndrivers use struct rq_map_data (they were converted to use the block\nlayer in 2.6.29 and 2.6.30). Well, I should clean up the block layer\nmapping API.\n\nzhou sf reported this regiression and tested this patch:\n\nhttp://www.spinics.net/lists/linux-scsi/msg37128.html\nhttp://www.spinics.net/lists/linux-scsi/msg37168.html\n\nReported-by: zhou sf \u003csxzzsf@gmail.com\u003e\nTested-by: zhou sf \u003csxzzsf@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7878cba9f0037f5599004b03a1260b32d9050360",
      "tree": "bff5e1a47b6e64e45df0428925cc6db8542cad62",
      "parents": [
        "6118b70b3a0b4c583439bb77600194c82f220ce3"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Jun 26 15:37:49 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 10:56:25 2009 +0200"
      },
      "message": "block: Create bip slabs with embedded integrity vectors\n\nThis patch restores stacking ability to the block layer integrity\ninfrastructure by creating a set of dedicated bip slabs.  Each bip slab\nhas an embedded bio_vec array at the end.  This cuts down on memory\nallocations and also simplifies the code compared to the original bvec\nversion.  Only the largest bip slab is backed by a mempool.  The pool is\ncontained in the bio_set so stacking drivers can ensure forward\nprogress.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.(none)\u003e\n"
    },
    {
      "commit": "e212d6f25084e8e9b02a04ba514d7bb1e4a4924a",
      "tree": "a94638953a7aa7f0bbd6f5d08fa3c649ce0ef8ce",
      "parents": [
        "5ced504b1bd1979378de35c56aa5d3d79fb5033f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 16 11:19:36 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 11:19:36 2009 +0200"
      },
      "message": "block: remove some includings of blktrace_api.h\n\nWhen porting blktrace to tracepoints, we changed to trace/block.h\nfor trace prober declarations.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "76d93ff344f547c633fd7b2ee6511bad82c4616f",
      "tree": "6e1dc59a1747f579abc4d726135d127f3b4e021d",
      "parents": [
        "27af1da4b58675d5c6bacf9b7de9c2746687d272"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 22 13:38:58 2009 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:47 2009 +0200"
      },
      "message": "trivial: fix typo in bio_alloc kernel doc\n\nFix typo in bio_alloc kernel doc.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c9059598ea8981d02356eead3188bf7fa4d717b8",
      "tree": "03e73b20a30e988da7c6a3e0ad93b2dc5843274d",
      "parents": [
        "0a33f80a8373eca7f4bea3961d1346c3815fa5ed",
        "b0fd271d5fba0b2d00888363f3869e3f9b26caa9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:52:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 11:10:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block: (153 commits)\n  block: add request clone interface (v2)\n  floppy: fix hibernation\n  ramdisk: remove long-deprecated \"ramdisk\u003d\" boot-time parameter\n  fs/bio.c: add missing __user annotation\n  block: prevent possible io_context-\u003erefcount overflow\n  Add serial number support for virtio_blk, V4a\n  block: Add missing bounce_pfn stacking and fix comments\n  Revert \"block: Fix bounce limit setting in DM\"\n  cciss: decode unit attention in SCSI error handling code\n  cciss: Remove no longer needed sendcmd reject processing code\n  cciss: change SCSI error handling routines to work with interrupts enabled.\n  cciss: separate error processing and command retrying code in sendcmd_withirq_core()\n  cciss: factor out fix target status processing code from sendcmd functions\n  cciss: simplify interface of sendcmd() and sendcmd_withirq()\n  cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code\n  cciss: Use schedule_timeout_uninterruptible in SCSI error handling code\n  block: needs to set the residual length of a bidi request\n  Revert \"block: implement blkdev_readpages\"\n  block: Fix bounce limit setting in DM\n  Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt\n  ...\n\nManually fix conflicts with tracing updates in:\n\tblock/blk-sysfs.c\n\tdrivers/ide/ide-atapi.c\n\tdrivers/ide/ide-cd.c\n\tdrivers/ide/ide-floppy.c\n\tdrivers/ide/ide-tape.c\n\tinclude/trace/events/block.h\n\tkernel/trace/blktrace.c\n"
    },
    {
      "commit": "0e0c62123b517d2b3c26922342c0cc5bb63a93f8",
      "tree": "12de5174964661c1731cec7e3abd05980dfcf26d",
      "parents": [
        "d9c7d394a8ebacb60097b192939ae9f15235225e"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Wed Jun 10 12:57:07 2009 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jun 10 23:07:15 2009 +0200"
      },
      "message": "fs/bio.c: add missing __user annotation\n\nAs reported by sparse:\n\nfs/bio.c:720:13: warning: incorrect type in assignment (different address spaces)\nfs/bio.c:720:13:    expected char *iov_addr\nfs/bio.c:720:13:    got void [noderef] \u003casn:1\u003e*\nfs/bio.c:724:36: warning: incorrect type in argument 2 (different address spaces)\nfs/bio.c:724:36:    expected void const [noderef] \u003casn:1\u003e*from\nfs/bio.c:724:36:    got char *iov_addr\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "55782138e47d9baf2f7d3a7af9e7cf42adf72c56",
      "tree": "c7ccabae20e27bbeb08b69a358e8b86c98d1d9f3",
      "parents": [
        "f57a8a1911342265e7acdc190333c4e9235a6632"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 09 13:43:05 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 09 12:34:23 2009 -0400"
      },
      "message": "tracing/events: convert block trace points to TRACE_EVENT()\n\nTRACE_EVENT is a more generic way to define tracepoints. Doing so adds\nthese new capabilities to this tracepoint:\n\n  - zero-copy and per-cpu splice() tracing\n  - binary tracing without printf overhead\n  - structured logging records exposed under /debug/tracing/events\n  - trace events embedded in function tracer output and other plugins\n  - user-defined, per tracepoint filter expressions\n  ...\n\nCons:\n\n  - no dev_t info for the output of plug, unplug_timer and unplug_io events.\n    no dev_t info for getrq and sleeprq events if bio \u003d\u003d NULL.\n    no dev_t info for rq_abort,...,rq_requeue events if rq-\u003erq_disk \u003d\u003d NULL.\n\n    This is mainly because we can\u0027t get the deivce from a request queue.\n    But this may change in the future.\n\n  - A packet command is converted to a string in TP_assign, not TP_print.\n    While blktrace do the convertion just before output.\n\n    Since pc requests should be rather rare, this is not a big issue.\n\n  - In blktrace, an event can have 2 different print formats, but a TRACE_EVENT\n    has a unique format, which means we have some unused data in a trace entry.\n\n    The overhead is minimized by using __dynamic_array() instead of __array().\n\nI\u0027ve benchmarked the ioctl blktrace vs the splice based TRACE_EVENT tracing:\n\n      dd                   dd + ioctl blktrace       dd + TRACE_EVENT (splice)\n1     7.36s, 42.7 MB/s     7.50s, 42.0 MB/s          7.41s, 42.5 MB/s\n2     7.43s, 42.3 MB/s     7.48s, 42.1 MB/s          7.43s, 42.4 MB/s\n3     7.38s, 42.6 MB/s     7.45s, 42.2 MB/s          7.41s, 42.5 MB/s\n\nSo the overhead of tracing is very small, and no regression when using\nthose trace events vs blktrace.\n\nAnd the binary output of TRACE_EVENT is much smaller than blktrace:\n\n # ls -l -h\n -rw-r--r-- 1 root root 8.8M 06-09 13:24 sda.blktrace.0\n -rw-r--r-- 1 root root 195K 06-09 13:24 sda.blktrace.1\n -rw-r--r-- 1 root root 2.7M 06-09 13:25 trace_splice.out\n\nFollowing are some comparisons between TRACE_EVENT and blktrace:\n\nplug:\n  kjournald-480   [000]   303.084981: block_plug: [kjournald]\n  kjournald-480   [000]   303.084981:   8,0    P   N [kjournald]\n\nunplug_io:\n  kblockd/0-118   [000]   300.052973: block_unplug_io: [kblockd/0] 1\n  kblockd/0-118   [000]   300.052974:   8,0    U   N [kblockd/0] 1\n\nremap:\n  kjournald-480   [000]   303.085042: block_remap: 8,0 W 102736992 + 8 \u003c- (8,8) 33384\n  kjournald-480   [000]   303.085043:   8,0    A   W 102736992 + 8 \u003c- (8,8) 33384\n\nbio_backmerge:\n  kjournald-480   [000]   303.085086: block_bio_backmerge: 8,0 W 102737032 + 8 [kjournald]\n  kjournald-480   [000]   303.085086:   8,0    M   W 102737032 + 8 [kjournald]\n\ngetrq:\n  kjournald-480   [000]   303.084974: block_getrq: 8,0 W 102736984 + 8 [kjournald]\n  kjournald-480   [000]   303.084975:   8,0    G   W 102736984 + 8 [kjournald]\n\n  bash-2066  [001]  1072.953770:   8,0    G   N [bash]\n  bash-2066  [001]  1072.953773: block_getrq: 0,0 N 0 + 0 [bash]\n\nrq_complete:\n  konsole-2065  [001]   300.053184: block_rq_complete: 8,0 W () 103669040 + 16 [0]\n  konsole-2065  [001]   300.053191:   8,0    C   W 103669040 + 16 [0]\n\n  ksoftirqd/1-7   [001]  1072.953811:   8,0    C   N (5a 00 08 00 00 00 00 00 24 00) [0]\n  ksoftirqd/1-7   [001]  1072.953813: block_rq_complete: 0,0 N (5a 00 08 00 00 00 00 00 24 00) 0 + 0 [0]\n\nrq_insert:\n  kjournald-480   [000]   303.084985: block_rq_insert: 8,0 W 0 () 102736984 + 8 [kjournald]\n  kjournald-480   [000]   303.084986:   8,0    I   W 102736984 + 8 [kjournald]\n\nChangelog from v2 -\u003e v3:\n\n- use the newly introduced __dynamic_array().\n\nChangelog from v1 -\u003e v2:\n\n- use __string() instead of __array() to minimize the memory required\n  to store hex dump of rq-\u003ecmd().\n\n- support large pc requests.\n\n- add missing blk_fill_rwbs_rq() in block_rq_requeue TRACE_EVENT.\n\n- some cleanups.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2DF669.5070905@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ae03bf639a5027d27270123f5f6e3ee6a412781d",
      "tree": "d705f41a188ad656b1f47f7952626a9f992e3b8f",
      "parents": [
        "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:50 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Use accessor functions for queue limits\n\nConvert all external users of queue limits to using wrapper functions\ninstead of poking the request queue variables directly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e4b636366c00738b9609cda307014d71b1225b7f",
      "tree": "760b67b3624eda62e943e48ce93635c30a5b47bf",
      "parents": [
        "b9ed7252d219c1c663944bf03846eabb515dbe75",
        "279e677faa775ad16e75c32e1bf4a37f8158bc61"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.31\n\nConflicts:\n\tdrivers/block/hd.c\n\tdrivers/block/mg_disk.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4fc981ef9e7c0953d5c4896ce088b19c50cb018f",
      "tree": "9efb7d762e51cb92dcee0e90ebdb76185aadebb4",
      "parents": [
        "5f49f63178360b07a095bd33b0d850d60edf7590"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 19 18:33:06 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 11:36:08 2009 +0200"
      },
      "message": "bio: always copy back data for copied kernel requests\n\nWhen a read bio_copy_kern() request fails, the content of the bounce\nbuffer is not copied back.  However, as request failure doesn\u0027t\nnecessarily mean complete failure, the buffer state can be useful.\nThis behavior is also inconsistent with the user map counterpart and\ncauses the subtle difference between bounced and unbounced IO causes\nconfusion.\n\nThis patch makes bio_copy_kern_endio() ignore @err and always copy\nback data on request completion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "69838727bcd819a8fd73a88447801221788b0c6d",
      "tree": "4fd6c31c1078ac079ea1ba0fa9cdf4aa581f06a7",
      "parents": [
        "0191944282e84931f92915b5f06b348a92dac7e1"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Apr 28 20:24:29 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 20:24:29 2009 +0200"
      },
      "message": "bio: fix memcpy corruption in bio_copy_user_iov()\n\nst driver uses blk_rq_map_user() in order to just build a request out\nof page frames. In this case, map_data-\u003eoffset is a non zero value and\niov[0].iov_base is NULL. We need to increase nr_pages for that.\n\nCc: stable@kernel.org\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a9e9dc24bbc3e084450a22cf4fb82f5f5d4cbeea",
      "tree": "c6d18d969b76f61ebbfa777caf2706af5873a98f",
      "parents": [
        "451a9ebf653d28337ba53ed5b4b70b0b9543cca1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 15 22:10:27 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:10 2009 +0200"
      },
      "message": "bio: use bio_kmalloc() in copy/map functions\n\nImpact: remove possible deadlock condition\n\nThere is no reason to use mempool backed allocation for map functions.\nAlso, because kern mapping is used inside LLDs (e.g. for EH), using\nmempool backed allocation can lead to deadlock under extreme\nconditions (mempool already consumed by the time a request reached EH\nand requests are blocked on EH).\n\nSwitch copy/map functions to bio_kmalloc().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "451a9ebf653d28337ba53ed5b4b70b0b9543cca1",
      "tree": "ab203dfb628623483a1aeb7ead564ea35ad21d29",
      "parents": [
        "cd0aca2d550f238d80ba58e7dcade4ea3d0a3aa7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 15 19:50:51 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:10 2009 +0200"
      },
      "message": "bio: fix bio_kmalloc()\n\nImpact: fix bio_kmalloc() and its destruction path\n\nbio_kmalloc() was broken in two ways.\n\n* bvec_alloc_bs() first allocates bvec using kmalloc() and then\n  ignores it and allocates again like non-kmalloc bvecs.\n\n* bio_kmalloc_destructor() didn\u0027t check for and free bio integrity\n  data.\n\nThis patch fixes the above problems.  kmalloc patch is separated out\nfrom bio_alloc_bioset() and allocates the requested number of bvecs as\ninline bvecs.\n\n* bio_alloc_bioset() no longer takes NULL @bs.  None other than\n  bio_kmalloc() used it and outside users can\u0027t know how it was\n  allocated anyway.\n\n* Define and use BIO_POOL_NONE so that pool index check in\n  bvec_free_bs() triggers if inline or kmalloc allocated bvec gets\n  there.\n\n* Relocate destructors on top of each allocation function so that how\n  they\u0027re used is more clear.\n\nJens Axboe suggested allocating bvecs inline.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "86c824b9434e764d01489688e4e38aee43b93fcf",
      "tree": "0aa776b6fb5af04e9392c3f49842eeee97a5bd74",
      "parents": [
        "61e0d47c33cc371f725bcda4a47ae0efe652dba8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 09:00:07 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:12 2009 +0200"
      },
      "message": "bio: add documentation to bio_alloc()\n\nExplain that with __GFP_WAIT set it will not fail, and that the caller\nmust never allocate more than 1 bio at the time.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c7eee1b836ab5e504cbd2b7f3892ea468bd52a16",
      "tree": "e9bc6170d8086e57b10e7514459b9efd2c40ebf2",
      "parents": [
        "5243ef8b54a927cae23216253e4e3f03af6f1446"
      ],
      "author": {
        "name": "Alberto Bertogli",
        "email": "albertito@blitiri.com.ar",
        "time": "Sun Jan 25 23:36:14 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:22:02 2009 +0200"
      },
      "message": "trivial: Fix typo in bio_split()\u0027s documentation\n\nSigned-off-by: Alberto Bertogli \u003calbertito@blitiri.com.ar\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6d2a78e783416ba99e36beb1d4395b785b34e867",
      "tree": "5e1b772cfbfb8b5d089a9808a0232749f7ddf8be",
      "parents": [
        "32ca163c9cdb33151d79e95a7cf244f62b5d4418"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Mar 10 08:27:39 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 24 12:35:17 2009 +0100"
      },
      "message": "block: add private bio_set for bio integrity allocations\n\nThe integrity bio allocation needs its own bio_set to avoid violating\nthe mempool allocation rules and risking deadlocks.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a7fcd37cdcb47806fb8a9070f006ee34061defa6",
      "tree": "3a983ae22551ce8d0aa062d84d8165df862811fa",
      "parents": [
        "34053979fb1d923217685cf166349f1899980581"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 05 16:10:29 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 24 12:35:16 2009 +0100"
      },
      "message": "block: don\u0027t create bio_vec slabs of less than the inline number\n\nIf we don\u0027t have CONFIG_BLK_DEV_INTEGRITY set, then we don\u0027t have\nany external dependencies on the bio_vec slabs. So don\u0027t create\nthe ones that we will inline anyway.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "34053979fb1d923217685cf166349f1899980581",
      "tree": "05e4c9dd49fe841ecb5c6556aa3a5deaf05fab75",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 21 11:16:36 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 24 12:35:16 2009 +0100"
      },
      "message": "block: cleanup bio_alloc_bioset()\n\nthis warning (which got fixed by commit b2bf968):\n\n  fs/bio.c: In function ‘bio_alloc_bioset’:\n  fs/bio.c:305: warning: ‘p’ may be used uninitialized in this function\n\nTriggered because the code flow in bio_alloc_bioset() is correct\nbut a bit complex for the compiler to see through.\n\nStreamline it a bit - this also makes the code a tiny bit more compact:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n   7540\t    256\t     40\t   7836\t   1e9c\tbio.o.before\n   7539\t    256\t     40\t   7835\t   1e9b\tbio.o.after\n\nAlso remove an older compiler-warnings annotation from this function,\nit\u0027s not needed.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "059ea3318c8ede71851a52b4359fbf1ab0cec301",
      "tree": "29a70645e27947d820884b1249d0d7f26b8ea0d8",
      "parents": [
        "87092698c665e0a358caf9825ae13114343027e8"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Mar 09 10:42:45 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Mar 14 21:06:52 2009 +0100"
      },
      "message": "block: fix memory leak in bio_clone()\n\nIf bio_integrity_clone() fails, bio_clone() returns NULL without freeing\nthe newly allocated bio.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "87092698c665e0a358caf9825ae13114343027e8",
      "tree": "4003d12a76e1cd5b50d275a0aef536d4a86d0092",
      "parents": [
        "041b62374c7fedc11a8a1eeda2868612d3d1436c"
      ],
      "author": {
        "name": "un\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 09 10:40:52 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Mar 14 21:06:51 2009 +0100"
      },
      "message": "block: Add gfp_mask parameter to bio_integrity_clone()\n\nStricter gfp_mask might be required for clone allocation.\nFor example, request-based dm may clone bio in interrupt context\nso it has to use GFP_ATOMIC.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b2bf96833c5782befc3e7700f791fde754a47b01",
      "tree": "b38745750c948b519e4c46bb9589d3a61c6359f4",
      "parents": [
        "169d418b127b98a3e464e9c4b807ad083760f98c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 19 08:50:26 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 26 10:45:48 2009 +0100"
      },
      "message": "block: fix bogus gcc warning for uninitialized var usage\n\nNewer gcc throw this warning:\n\n        fs/bio.c: In function ?bio_alloc_bioset?:\n        fs/bio.c:305: warning: ?p? may be used uninitialized in this function\n\nsince it cannot figure out that \u0027p\u0027 is only ever used if \u0027bs\u0027 is non-NULL.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a60e78e57a17d55bbd5a96da16fe9649d364b987",
      "tree": "5b7a7c5977ee8862166f743d1aede56278c4971b",
      "parents": [
        "93dbb393503d53cd226e5e1f0088fe8f4dbaa2b8"
      ],
      "author": {
        "name": "Subhash Peddamallu",
        "email": "subhash.peddamallu@gmail.com",
        "time": "Mon Feb 16 10:27:07 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:01 2009 +0100"
      },
      "message": "fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free\n\nWhen freeing from bio pool use right ptr to account for bs-\u003efront_pad,\ninstead of bio ptr,\n\nSigned-off-by: Subhash Peddamallu \u003csubhash.peddamallu@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "97ae77a1cd332c7b011d71315c8faabce6840c72",
      "tree": "fc243ca28ea474eaf81729079eeb3b259cd1b81b",
      "parents": [
        "56c451f4b583ccdf80c9e676179c9cb49de86745"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Dec 18 14:49:38 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 11:10:35 2009 -0600"
      },
      "message": "[SCSI] block: make blk_rq_map_user take a NULL user-space buffer for WRITE\n\nThe commit 818827669d85b84241696ffef2de485db46b0b5e (block: make\nblk_rq_map_user take a NULL user-space buffer) extended\nblk_rq_map_user to accept a NULL user-space buffer with a READ\ncommand. It was necessary to convert sg to use the block layer mapping\nAPI.\n\nThis patch extends blk_rq_map_user again for a WRITE command. It is\nnecessary to convert st and osst drivers to use the block layer\napping API.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "56c451f4b583ccdf80c9e676179c9cb49de86745",
      "tree": "7ad9daeafb88e3c4390bf7a2db0c203fe2642728",
      "parents": [
        "e623ddb4e940b266adc77ba1cc28a3554aa90e79"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Dec 18 14:49:37 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 11:10:08 2009 -0600"
      },
      "message": "[SCSI] block: fix the partial mappings with struct rq_map_data\n\nThis fixes bio_copy_user_iov to properly handle the partial mappings\nwith struct rq_map_data (which only sg uses for now but st and osst\nwill shortly). It adds the offset member to struct rq_map_data and\nchanges blk_rq_map_user to update it so that bio_copy_user_iov can add\nan appropriate page frame via bio_add_pc_page().\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "e623ddb4e940b266adc77ba1cc28a3554aa90e79",
      "tree": "62c245b32720573d97718795b0c8165cad967b05",
      "parents": [
        "4f10aae0d1a285df6b16bf6ca5abd366140fd371"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Dec 18 14:49:36 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 11:09:41 2009 -0600"
      },
      "message": "[SCSI] block: fix bio_add_page misuse with rq_map_data\n\nThis fixes bio_add_page misuse in bio_copy_user_iov with rq_map_data,\nwhich only sg uses now.\n\nrq_map_data carries page frames for bio_add_pc_page. bio_copy_user_iov\nuses bio_add_pc_page with a larger size than PAGE_SIZE. It\u0027s clearly\nwrong.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d3f761104b097738932afcc310fbbbbfb007ef92",
      "tree": "5acda986824cab2a8c54690258a49df61b898389",
      "parents": [
        "f735b5eeb9fcbb001e0cf2a5296b19c4bbaec55f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Dec 23 12:46:21 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:29:53 2008 +0100"
      },
      "message": "bio: get rid of bio_vec clearing\n\nWe don\u0027t need to clear the memory used for adding bio_vec entries,\nsince nobody should be looking at members unitialized. Any valid\nuse should be below bio-\u003ebi_vcnt, and that members up until that count\nmust be valid since they were added through bio_add_page().\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "392ddc32982a5c661dd90dd49a3cb37f1c68b782",
      "tree": "614b8e857a70ce479bcbbf24af66a56b7723efc8",
      "parents": [
        "bb799ca0202a360fa74d5f17039b9100caebdde7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Dec 23 12:42:54 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:29:50 2008 +0100"
      },
      "message": "bio: add support for inlining a number of bio_vecs inside the bio\n\nWhen we go and allocate a bio for IO, we actually do two allocations.\nOne for the bio itself, and one for the bi_io_vec that holds the\nactual pages we are interested in.\n\nThis feature inlines a definable amount of io vecs inside the bio\nitself, so we eliminate the bio_vec array allocation for IO\u0027s up\nto a certain size. It defaults to 4 vecs, which is typically 16k\nof IO.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bb799ca0202a360fa74d5f17039b9100caebdde7",
      "tree": "048b6cedfd2644edd82a606db6d9e8b19d31328b",
      "parents": [
        "1b4344986926da324b5cd10b683e5a1a5e1b7db3"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 10 15:35:05 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:29:23 2008 +0100"
      },
      "message": "bio: allow individual slabs in the bio_set\n\nInstead of having a global bio slab cache, add a reference to one\nin each bio_set that is created. This allows for personalized slabs\nin each bio_set, so that they can have bios of different sizes.\n\nThis means we can personalize the bios we return. File systems may\nwant to embed the bio inside another structure, to avoid allocation\nmore items (and stuffing them in -\u003ebi_private) after the get a bio.\nOr we may want to embed a number of bio_vecs directly at the end\nof a bio, to avoid doing two allocations to return a bio. This is now\npossible.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1b4344986926da324b5cd10b683e5a1a5e1b7db3",
      "tree": "f196fad09555f32e4464df2ea4c8fea17ad99e76",
      "parents": [
        "7ff9345ffac56743b5001561bc2dc1e041b79149"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 22 20:32:58 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:28:46 2008 +0100"
      },
      "message": "bio: move the slab pointer inside the bio_set\n\nIn preparation for adding differently sized bios.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7ff9345ffac56743b5001561bc2dc1e041b79149",
      "tree": "aede8c4b4b52c7808cdea7ec039655accffd2298",
      "parents": [
        "a31a97381cdf7dceb03b797a8faf9bc8a01c65d1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 11 11:53:43 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:28:46 2008 +0100"
      },
      "message": "bio: only mempool back the largest bio_vec slab cache\n\nWe only very rarely need the mempool backing, so it makes sense to\nget rid of all but one of the mempool in a bio_set. So keep the\nlargest bio_vec count mempool so we can always honor the largest\nallocation, and \"upgrade\" callers that fail.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0bfc24559d7945506184d86739fe365a181f06b7",
      "tree": "5c152128faac7080f4802ce03d1c6b6bc7173227",
      "parents": [
        "5f3ea37c7716db4e894a480e0c18b24399595b6b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 11:59:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 13:04:35 2008 +0100"
      },
      "message": "blktrace: port to tracepoints, update\n\nPort to the new tracepoints API: split DEFINE_TRACE() and DECLARE_TRACE()\nsites. Spread them out to the usage sites, as suggested by\nMathieu Desnoyers.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\n"
    },
    {
      "commit": "5f3ea37c7716db4e894a480e0c18b24399595b6b",
      "tree": "db6784635d024894f641b340dcd7c5060c446077",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Oct 30 08:34:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 12:13:34 2008 +0100"
      },
      "message": "blktrace: port to tracepoints\n\nThis was a forward port of work done by Mathieu Desnoyers, I changed it to\nencode the \u0027what\u0027 parameter on the tracepoint name, so that one can register\ninterest in specific events and not on classes of events to then check the\n\u0027what\u0027 parameter.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6feef531f55cf4a20fd9eb39f5352e5745203603",
      "tree": "2c52b800edcbdf01abefcf27e900985c087f1b36",
      "parents": [
        "ad3316bf4eeb53c89164f759767f911072b56203"
      ],
      "author": {
        "name": "Denis ChengRq",
        "email": "crquan@gmail.com",
        "time": "Thu Oct 09 08:57:05 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:57:05 2008 +0200"
      },
      "message": "block: mark bio_split_pool static\n\nSince all bio_split calls refer the same single bio_split_pool, the bio_split\nfunction can use bio_split_pool directly instead of the mempool_t parameter;\n\nthen the mempool_t parameter can be removed from bio_split param list, and\nbio_split_pool is only referred in fs/bio.c file, can be marked static.\n\nSigned-off-by: Denis ChengRq \u003ccrquan@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ad3316bf4eeb53c89164f759767f911072b56203",
      "tree": "12caa0194f385c58e4543ad864a58dff02f33a47",
      "parents": [
        "b02739b01c5309d74a59859f2ce92c931d1f1955"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Wed Oct 01 22:42:53 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:22 2008 +0200"
      },
      "message": "block: Find bio sector offset given idx and offset\n\nHelper function to find the sector offset in a bio given bvec index\nand page offset.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0a0d96b03a1f3bfd6bc3ea08008699e8e59fccd9",
      "tree": "59cbbcb691a76121fba8d7af74d89558296d5834",
      "parents": [
        "3e6053d76dcbd92b2f9f4ad5ece9bce83149523e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 11 13:17:37 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: add bio_kmalloc()\n\nNot all callers need (or want!) the mempool backing guarentee, it\nessentially means that you can only use bio_alloc() for short allocations\nand not for preallocating some bio\u0027s at setup or init time.\n\nSo add bio_kmalloc() which does the same thing as bio_alloc(), except\nit just uses kmalloc() as the backing instead of the bio mempools.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "818827669d85b84241696ffef2de485db46b0b5e",
      "tree": "694d09728733e65d604bf3e1f13679db73fc1d9a",
      "parents": [
        "839e96afba87117befd39cf4e43f156edc8047a7"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 16:20:19 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "block: make blk_rq_map_user take a NULL user-space buffer\n\nThis patch changes blk_rq_map_user to accept a NULL user-space buffer\nwith a READ command if rq_map_data is not NULL. Thus a caller can pass\npage frames to lk_rq_map_user to just set up a request and bios with\npage frames propely. bio_uncopy_user (called via blk_rq_unmap_user)\ndoesn\u0027t copy data to user space with such request.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4d8ab62e087d9300883b82c2662e73e6eef803a3",
      "tree": "379f6c1a3dfb165ce1c604d34ddb42ac1447d832",
      "parents": [
        "10db10d144c0248f285242f79daf6b9de6b00a62"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 15:05:57 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "bio: convert bio_copy_kern to use bio_copy_user\n\nbio_copy_kern and bio_copy_user are very similar. This converts\nbio_copy_kern to use bio_copy_user.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "152e283fdfea0cd11e297d982378b55937842dde",
      "tree": "a97a57108353f167a1e2911e8ee09c527ef42d3e",
      "parents": [
        "a3bce90edd8f6cafe3f63b1a943800792e830178"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 16:17:06 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "block: introduce struct rq_map_data to use reserved pages\n\nThis patch introduces struct rq_map_data to enable bio_copy_use_iov()\nuse reserved pages.\n\nCurrently, bio_copy_user_iov allocates bounce pages but\ndrivers/scsi/sg.c wants to allocate pages by itself and use\nthem. struct rq_map_data can be used to pass allocated pages to\nbio_copy_user_iov.\n\nThe current users of bio_copy_user_iov simply passes NULL (they don\u0027t\nwant to use pre-allocated pages).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a3bce90edd8f6cafe3f63b1a943800792e830178",
      "tree": "c07a2962987e57997b4ff6f6c63febe1feaa0a9c",
      "parents": [
        "45333d5a31296d0af886d94f1d08f128231cab8e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 16:17:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov\n\nCurrently, blk_rq_map_user and blk_rq_map_user_iov always do\nGFP_KERNEL allocation.\n\nThis adds gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov\nso sg can use it (sg always does GFP_ATOMIC allocation).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c7c22e4d5c1fdebfac4dba76de7d0338c2b0d832",
      "tree": "ecc3d2517b3471ccc35d4cb4e3b48d4b57205061",
      "parents": [
        "18887ad910e56066233a07fd3cfb2fa11338b782"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Sep 13 20:26:01 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: add support for IO CPU affinity\n\nThis patch adds support for controlling the IO completion CPU of\neither all requests on a queue, or on a per-request basis. We export\na sysfs variable (rq_affinity) which, if set, migrates completions\nof requests to the CPU that originally submitted it. A bio helper\n(bio_set_completion_cpu()) is also added, so that queuers can ask\nfor completion on that specific CPU.\n\nIn testing, this has been show to cut the system time by as much\nas 20-40% on synthetic workloads where CPU affinity is desired.\n\nThis requires a little help from the architecture, so it\u0027ll only\nwork as designed for archs that are using the new generic smp\nhelper infrastructure.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5df97b91b5d7ed426034fcc84cb6e7cf682b8838",
      "tree": "727b9fb778f72d2b1ff44c007fb5209bacf67f4a",
      "parents": [
        "b8b3e16cfe6435d961f6aaebcfd52a1ff2a988c5"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Aug 15 10:20:02 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "drop vmerge accounting\n\nRemove hw_segments field from struct bio and struct request. Without virtual\nmerge accounting they have no purpose.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b8b3e16cfe6435d961f6aaebcfd52a1ff2a988c5",
      "tree": "5832535c112c0504590256cb8a0bcabc6e282be3",
      "parents": [
        "6a421c1dc94b12923294a359822346f12492de5e"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Aug 15 10:15:19 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "block: drop virtual merging accounting\n\nRemove virtual merge accounting.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "aefcc28a3a63ac33a298777aa50ba43641c75241",
      "tree": "d72a23323e80b45da16ea916c9abe03d6a3f6bfd",
      "parents": [
        "76029ff37f31dad64641489c610d98955217bb68"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon Aug 25 20:36:08 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "bio: fix __bio_copy_iov() handling of bio-\u003ebv_len\n\nThe commit c5dec1c3034f1ae3503efbf641ff3b0273b64797 introduced\n__bio_copy_iov() to add bounce support to blk_rq_map_user_iov.\n\n__bio_copy_iov() uses bio-\u003ebv_len to copy data for READ commands after\nthe completion but it doesn\u0027t work with a request that partially\ncompleted. SCSI always completes a PC request as a whole but seems\nsome don\u0027t.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "76029ff37f31dad64641489c610d98955217bb68",
      "tree": "e8f729fa6288676be357295141a0950f171a62d8",
      "parents": [
        "48fd4f93a00eac844678629f2f00518e146ed30d"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon Aug 25 20:36:08 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "bio: fix bio_copy_kern() handling of bio-\u003ebv_len\n\nThe commit 68154e90c9d1492d570671ae181d9a8f8530da55 introduced\nbio_copy_kern() to add bounce support to blk_rq_map_kern.\n\nbio_copy_kern() uses bio-\u003ebv_len to copy data for READ commands after\nthe completion but it doesn\u0027t work with a request that partially\ncompleted. SCSI always completes a PC request as a whole but seems\nsome don\u0027t.\n\nThis patch fixes bio_copy_kern to handle the above case. As\nbio_copy_user does, bio_copy_kern uses struct bio_map_data to store\nstruct bio_vec.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReported-by: Nix \u003cnix@esperi.org.uk\u003e\nTested-by: Nix \u003cnix@esperi.org.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1ac0ae062cecd37587f5b951089f90e1d9d91769",
      "tree": "87c622f207ade7854abeb077acacd3fcd5761501",
      "parents": [
        "ba198efb5ef4e5f4927a18ff95a58f40c58cbaa9"
      ],
      "author": {
        "name": "Denis ChengRq",
        "email": "crquan@gmail.com",
        "time": "Mon Aug 04 11:56:30 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 06 12:30:04 2008 +0200"
      },
      "message": "bio: make use of bvec_nr_vecs\n\nSince introduced in 7ba1ba12eee, it should be made use of.\n\nSigned-off-by: Denis ChengRq \u003ccrquan@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f5dd33c494a427b1d1a3b574de5c9e511c888864",
      "tree": "fc6f61ffe488fe044f9e167b31b1c4ecd5f3f54c",
      "parents": [
        "8174c430e445a93016ef18f717fe570214fa38bf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "dio: use get_user_pages_fast\n\nUse get_user_pages_fast in the common/generic block and fs direct IO paths.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc371e66e340f35eed8dc4651c7c18e754c7fb26",
      "tree": "5a2d6727eb07a05999c531a90da43ab1c36b713e",
      "parents": [
        "b24498d477a14680fc3bb3ad884fa9fa76a2d237"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 03 09:53:43 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:15 2008 +0200"
      },
      "message": "Add bvec_merge_data to handle stacked devices and -\u003emerge_bvec()\n\nWhen devices are stacked, one device\u0027s merge_bvec_fn may need to perform\nthe mapping and then call one or more functions for its underlying devices.\n\nThe following bio fields are used:\n  bio-\u003ebi_sector\n  bio-\u003ebi_bdev\n  bio-\u003ebi_size\n  bio-\u003ebi_rw  using bio_data_dir()\n\nThis patch creates a new struct bvec_merge_data holding a copy of those\nfields to avoid having to change them directly in the struct bio when\ngoing down the stack only to have to change them back again on the way\nback up.  (And then when the bio gets mapped for real, the whole\nexercise gets repeated, but that\u0027s a problem for another day...)\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7ba1ba12eeef0aa7113beb16410ef8b7c748e18b",
      "tree": "4629aabe88bf095d58eabd2f451207695bb35b08",
      "parents": [
        "51d654e1d885607a6edd02b337105fa5c28b6d33"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Mon Jun 30 20:04:41 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:13 2008 +0200"
      },
      "message": "block: Block layer data integrity support\n\nSome block devices support verifying the integrity of requests by way\nof checksums or other protection information that is submitted along\nwith the I/O.\n\nThis patch implements support for generating and verifying integrity\nmetadata, as well as correctly merging, splitting and cloning bios and\nrequests that have this extra information attached.\n\nSee Documentation/block/data-integrity.txt for more information.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "51d654e1d885607a6edd02b337105fa5c28b6d33",
      "tree": "64e87fa9b3b28cb10be635cf4edc76ccf39befe1",
      "parents": [
        "a144ff09bc52ef3f3684ed23eadc9c7c0e57b3aa"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Jun 17 18:59:56 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:13 2008 +0200"
      },
      "message": "block: Globalize bio_set and bio_vec_slab\n\nMove struct bio_set and biovec_slab definitions to bio.h so they can\nbe used outside of bio.c.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ffee0259c9edcc4c0f06b60df51c461eeecad4c0",
      "tree": "c15df497b6bbe8fd7e9ed47cbfb3fba68be2e2df",
      "parents": [
        "eeae1d48c011839d9e1cdc1e8aacf0193c9d8197"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Apr 30 09:08:54 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 07 18:35:03 2008 +0200"
      },
      "message": "docbook: fix bio missing parameter\n\nFix fs/bio.c kernel-doc parameter warning:\nWarning(linux-2.6.25-git14//fs/bio.c:972): No description found for parameter \u0027reading\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "eeae1d48c011839d9e1cdc1e8aacf0193c9d8197",
      "tree": "77696d424a374adf671b1afb2ed03a76a65fee48",
      "parents": [
        "28f13702f03e527fcb979747a882cf366c489c50"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 07 13:26:27 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 07 13:26:27 2008 +0200"
      },
      "message": "block: use unitialized_var() in bio_alloc_bioset()\n\nBetter than setting idx to some random value and it silences the\nsame bogus gcc warning.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "68154e90c9d1492d570671ae181d9a8f8530da55",
      "tree": "4b4e9cfbaa587a576e7e52284c53ef99cf69ac4d",
      "parents": [
        "657e93be356f51888f56a58d2b374caefbf2fe86"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Apr 25 12:47:50 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 29 09:50:34 2008 +0200"
      },
      "message": "block: add dma alignment and padding support to blk_rq_map_kern\n\nThis patch adds bio_copy_kern similar to\nbio_copy_user. blk_rq_map_kern uses bio_copy_kern instead of\nbio_map_kern if necessary.\n\nbio_copy_kern uses temporary pages and the bi_end_io callback frees\nthese pages. bio_copy_kern saves the original kernel buffer at\nbio-\u003ebi_private it doesn\u0027t use something like struct bio_map_data to\nstore the information about the caller.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c5dec1c3034f1ae3503efbf641ff3b0273b64797",
      "tree": "d8c2d81ff2d944a0ba43e6ef7284482898af8b3b",
      "parents": [
        "476a4813cfddf7cf159956cc0e2d3c830c1507e3"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Apr 11 12:56:49 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 21 09:50:08 2008 +0200"
      },
      "message": "block: convert bio_copy_user to bio_copy_user_iov\n\nThis patch enables bio_copy_user to take struct sg_iovec (renamed\nbio_copy_user_iov). bio_copy_user uses bio_copy_user_iov internally as\nbio_map_user uses bio_map_user_iov.\n\nThe major changes are:\n\n- adds sg_iovec array to struct bio_map_data\n\n- adds __bio_copy_iov that copy data between bio and\nsg_iovec. bio_copy_user_iov and bio_uncopy_user use it.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "40044ce0bf2b7e548584d91f108444e83ed5eab3",
      "tree": "f08d62febe76470e16a639b1c9029309defdd112",
      "parents": [
        "16d54669427069ef2823752c365d695b0cc4748f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Mar 17 21:14:40 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Mar 17 21:14:40 2008 +0100"
      },
      "message": "Revert \"unexport bio_{,un}map_user\"\n\nOutside users like asmlib uses the mapping functions. API wise, the\nexport is definitely sane. It\u0027s a better idea to keep this export\nthan to require external users to open-code this piece of code instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "86b6c7a7f78feca58d2d8615e53aee4d59ab9dc6",
      "tree": "032a54a3493041fa1c31857d23e9184b89545b78",
      "parents": [
        "4c54ac62dceecedd82d4a865017bba0b738e2897"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 18 13:48:32 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 19 10:04:00 2008 +0100"
      },
      "message": "fs/block_dev.c: remove #if 0\u0027ed code\n\nCommit b2e895dbd80c420bfc0937c3729b4afe073b3848 #if 0\u0027ed this code stating:\n\n\u003c--  snip  --\u003e\n\n    [PATCH] revert blockdev direct io back to 2.6.19 version\n\n    Andrew Vasquez is reporting as-iosched oopses and a 65% throughput\n    slowdown due to the recent special-casing of direct-io against\n    blockdevs.  We don\u0027t know why either of these things are occurring.\n\n    The patch minimally reverts us back to the 2.6.19 code for a 2.6.20\n    release.\n\n\u003c--  snip  --\u003e\n\nIt has since been dead code, and unless someone wants to revive it now\nit\u0027s time to remove it.\n\nThis patch also makes bio_release_pages() static again and removes the\nki_bio_count member from struct kiocb, reverting changes that had been\ndone for this dead code.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.home.kernel.dk\u003e\n"
    }
  ],
  "next": "5d84070ee0a433620c57e85dac7f82faaec5fbb3"
}
