)]}'
{
  "log": [
    {
      "commit": "3c522cedb572bb8d2e4867f358bdaa7d0c53d88c",
      "tree": "b348cabd2574638702f9abcccd0b8b711b136162",
      "parents": [
        "dcace5ac85c628af21878a1fa151e5e6403fb8eb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Feb 24 15:45:41 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 24 08:54:21 2011 -0800"
      },
      "message": "block: fix refcounting in BLKBSZSET\n\nAdam Kovari and others reported that disconnecting an USB drive with\nan ntfs-3g filesystem would cause \"kernel BUG at fs/inode.c:1421!\" to\nbe triggered.\n\nThe BUG could be traced back to ioctl(BLKBSZSET), which would\nerroneously decrement the refcount on the bdev.  This is because\nblkdev_get() expects the refcount to be already incremented and either\nreturns success or decrements the refcount and returns an error.\n\nThe bug was introduced by e525fd89 (block: make blkdev_get/put()\nhandle exclusive access), which didn\u0027t take into account this behavior\nof blkdev_get().\n\nThis fixes\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d29202\n(and likely 29792 too)\n\nReported-by: Adam Kovari \u003ckovariadam@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "f30195c50245d8ace628e1978b1daa8df86e7224",
      "tree": "edf4f91c4356c41d50fb07f15cebd1e6442538ad",
      "parents": [
        "d07335e51df0c6dec202d315fc4f1f7e100eec4e",
        "d4d77629953eabd3c14f6fa5746f6b28babfc55f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Nov 27 19:49:18 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Nov 27 19:49:18 2010 +0100"
      },
      "message": "Merge branch \u0027cleanup-bd_claim\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into for-2.6.38/core\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a014741c0adfb8fb79952939ca087cf03d272bb9",
      "tree": "57bafa05736f172b94fde156bb51798b3ddb6107",
      "parents": [
        "77304d2abac6101f7249754ffdd4421258877ab0"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Mon Nov 08 14:42:40 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:40:53 2010 +0100"
      },
      "message": "block: ioctl: fix information leak to userland\n\nStructure hd_geometry is copied to userland with 4 padding bytes\nbetween cylinders and start fields uninitialized on 64-bit platforms.\nIt leads to leaking of contents of kernel stack memory.\n\nCurrently there is no memset() in real implementations of getgeo()\nin drivers/block/, so it makes sense to have memset() in blkdev_ioctl().\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "77304d2abac6101f7249754ffdd4421258877ab0",
      "tree": "8ee5914529d70120528a630a8e904c22f8c4f98c",
      "parents": [
        "90fdb0b98a62d78a0650b9fd3ddc58a48f71d740"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Mon Nov 08 14:39:12 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:40:53 2010 +0100"
      },
      "message": "block: read i_size with i_size_read()\n\nConvert direct reads of an inode\u0027s i_size to using i_size_read().\n\ni_size_{read,write} use a seqcount to protect reads from accessing\nincomple writes.  Concurrent i_size_write()s require mutual exclussion\nto protect the seqcount that is used by i_size_{read,write}.  But\ni_size_read() callers do not need to use additional locking.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nAcked-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "a2887097f25cd38cadfc11d10769e2b349fb5eca",
      "tree": "cd4adcb305365d6ba9acd2c02d4eb9d0125c6f8d",
      "parents": [
        "8abfc6e7a45eb74e51904bbae676fae008b11366",
        "005a1d15f5a6b2bb4ada80349513effbf22b4588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block: (46 commits)\n  xen-blkfront: disable barrier/flush write support\n  Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c\n  block: remove BLKDEV_IFL_WAIT\n  aic7xxx_old: removed unused \u0027req\u0027 variable\n  block: remove the BH_Eopnotsupp flag\n  block: remove the BLKDEV_IFL_BARRIER flag\n  block: remove the WRITE_BARRIER flag\n  swap: do not send discards as barriers\n  fat: do not send discards as barriers\n  ext4: do not send discards as barriers\n  jbd2: replace barriers with explicit flush / FUA usage\n  jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n  jbd: replace barriers with explicit flush / FUA usage\n  nilfs2: replace barriers with explicit flush / FUA usage\n  reiserfs: replace barriers with explicit flush / FUA usage\n  gfs2: replace barriers with explicit flush / FUA usage\n  btrfs: replace barriers with explicit flush / FUA usage\n  xfs: replace barriers with explicit flush / FUA usage\n  block: pass gfp_mask and flags to sb_issue_discard\n  dm: convey that all flushes are processed as empty\n  ...\n"
    },
    {
      "commit": "dd3932eddf428571762596e17b65f5dc92ca361b",
      "tree": "57cec5ae2f862037f78b7e993323d77955bb6463",
      "parents": [
        "8786fb70ccb36c7cff64680bb80c46d3a09d44db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 16 20:51:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 20:52:58 2010 +0200"
      },
      "message": "block: remove BLKDEV_IFL_WAIT\n\nAll the blkdev_issue_* helpers can only sanely be used for synchronous\ncaller.  To issue cache flushes or barriers asynchronously the caller needs\nto set up a bio by itself with a completion callback to move the asynchronous\nstate machine ahead.  So drop the BLKDEV_IFL_WAIT flag that is always\nspecified when calling blkdev_issue_* and also remove the now unused flags\nargument to blkdev_issue_flush and blkdev_issue_zeroout.  For\nblkdev_issue_discard we need to keep it for the secure discard flag, which\ngains a more descriptive name and loses the bitops vs flag confusion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6d1d8050b4bc89d0165d29b58e894aeba2564a97",
      "tree": "b5c5b730bd7b80fe9041c031a6fcf08f42fff0d5",
      "parents": [
        "144177991ca624841ddbd1e7edff958fc0f6d1fe"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Tue Aug 31 15:47:05 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Sep 15 16:13:18 2010 +0200"
      },
      "message": "block, partition: add partition_meta_info to hd_struct\n\nI\u0027m reposting this patch series as v4 since there have been no additional\ncomments, and I cleaned up one extra bit of unneeded code (in 3/3). The patches\nare against Linus\u0027s tree: 2bfc96a127bc1cc94d26bfaa40159966064f9c8c\n(2.6.36-rc3).\n\nWould this patchset be suitable for inclusion in an mm branch?\n\nThis changes adds a partition_meta_info struct which itself contains a\nunion of structures that provide partition table specific metadata.\n\nThis change leaves the union empty. The subsequent patch includes an\nimplementation for CONFIG_EFI_PARTITION-based metadata.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8d57a98ccd0b4489003473979da8f5a1363ba7a3",
      "tree": "2982997ce66bb6a92c020b7189966c3097095fd7",
      "parents": [
        "93caf8e69eac763f6a20cf253ace8e7fc1ab7953"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed Aug 11 14:17:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:30 2010 -0700"
      },
      "message": "block: add secure discard\n\nSecure discard is the same as discard except that all copies of the\ndiscarded sectors (perhaps created by garbage collection) must also be\nerased.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nCc: Madhusudhan Chikkature \u003cmadhu.cr@ti.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15392efb9d427482754f6d267262452878667499",
      "tree": "e71dd54c88454971750436f5b4e5e512b0c9368a",
      "parents": [
        "6de43703108bb1d3fc9495b3e8107d6ec72f97e4"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:28 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: remove BKL from partition ioctls\n\nThe blkpg_ioctl and blkdev_reread_part access fields of\nthe bdev and gendisk structures, yet they always do so\nunder the protection of bdev-\u003ebd_mutex, which seems\nsufficient.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\ncked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6de43703108bb1d3fc9495b3e8107d6ec72f97e4",
      "tree": "86a5e955f33b0478b61631d373ca01ecf1558bc6",
      "parents": [
        "62c2a7d969f30163f733c81158254b3095b23e72"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:27 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: remove BKL from BLKROSET and BLKFLSBUF\n\nWe only call the functions set_device_ro(),\ninvalidate_bdev(), sync_filesystem() and sync_blockdev()\nwhile holding the BKL in these commands. All\nof these are also done in other code paths without\nthe BKL, which leads me to the conclusion that\nthe BKL is not needed here either.\n\nThe reason we hold it here is that it was originally\npushed down into the ioctl function from vfs_ioctl.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "62c2a7d969f30163f733c81158254b3095b23e72",
      "tree": "3e5dd79d874b996757814562b874a18415599a61",
      "parents": [
        "6e9624b8caec290d28b4c6d9ec75749df6372b87"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: push BKL into blktrace ioctls\n\nThe blktrace driver currently needs the BKL, but\nwe should not need to take that in the block layer,\nso just push it down into the driver itself.\n\nIt is quite likely that the BKL is not actually\nrequired in blktrace code and could be removed\nin a follow-on patch.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8a6cfeb6deca3a8fefd639d898b0d163c0b5d368",
      "tree": "9a633ad48c3b1ada0519ee7bade0602f940037f6",
      "parents": [
        "34484062445fe905bf02c72f87ddda21881acda3"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 08 10:18:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:25:00 2010 +0200"
      },
      "message": "block: push down BKL into .locked_ioctl\n\nAs a preparation for the removal of the big kernel\nlock in the block layer, this removes the BKL\nfrom the common ioctl handling code, moving it\ninto every single driver still using it.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fbd9b09a177a481eda256447c881f014f29034fe",
      "tree": "ef7e213045382f82a1e3e3cf134d196a1045dd7a",
      "parents": [
        "6b4517a7913a09d3259bb1d21c9cb300f12294bd"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Apr 28 17:55:06 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 28 19:47:36 2010 +0200"
      },
      "message": "blkdev: generalize flags for blkdev_issue_fn functions\n\nThe patch just convert all blkdev_issue_xxx function to common\nset of flags. Wait/allocation semantics preserved.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "98262f2762f0067375f83824d81ea929e37e6bfe",
      "tree": "a26618d5c305eed975501c80cb02bc0f1b6e4524",
      "parents": [
        "464191c65b85a8ec68a6e1a6293af625287c807e"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Dec 03 09:24:48 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 09:24:48 2009 +0100"
      },
      "message": "block: Allow devices to indicate whether discarded blocks are zeroed\n\nThe discard ioctl is used by mkfs utilities to clear a block device\nprior to putting metadata down.  However, not all devices return zeroed\nblocks after a discard.  Some drives return stale data, potentially\ncontaining old superblocks.  It is therefore important to know whether\ndiscarded blocks are properly zeroed.\n\nBoth ATA and SCSI drives have configuration bits that indicate whether\nzeroes are returned after a discard operation.  Implement a block level\ninterface that allows this information to be bubbled up the stack and\nqueried via a new block device ioctl.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ac481c20ef8f6c6f2be75d581863f40c43874ef7",
      "tree": "90512cadc1c9dea89c0a24149166d3ab464d065e",
      "parents": [
        "61f0c1dcaaac71faabac6ef7c839b29f20204bea"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sat Oct 03 20:52:01 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 20:52:01 2009 +0200"
      },
      "message": "block: Topology ioctls\n\nNot all users of the topology information want to use libblkid.  Provide\nthe topology information through bdev ioctls.\n\nAlso clarify sector size comments for existing BLK ioctls.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "746cd1e7e4a555ddaee53b19a46e05c9c61eaf09",
      "tree": "d129194669e0122113a5cc86003a4a7711450284",
      "parents": [
        "3d2257f157c2324acbc0fa0fa54e8626a987edd2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Sep 12 07:35:43 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:53 2009 +0200"
      },
      "message": "block: use blkdev_issue_discard in blk_ioctl_discard\n\nblk_ioctl_discard duplicates large amounts of code from blkdev_issue_discard,\nthe only difference between the two is that blkdev_issue_discard needs to\nsend a barrier discard request and blk_ioctl_discard a non-barrier one,\nand blk_ioctl_discard needs to wait on the request.  To facilitates this\nadd a flags argument to blkdev_issue_discard to control both aspects of the\nbehaviour.  This will be very useful later on for using the waiting\nfuncitonality for other callers.\n\nBased on an earlier patch from Matthew Wilcox \u003cmatthew@wil.cx\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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": "15afd1cc7b624e1c94fdf824ec5af611050b150c",
      "tree": "d6c213d9c218fe20d7533a74751f55f4859cc741",
      "parents": [
        "86c824b9434e764d01489688e4e38aee43b93fcf"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 15 10:35:31 2009 +0530"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:12 2009 +0200"
      },
      "message": "block: Remove code handling bio_alloc failure with __GFP_WAIT\n\nRemove code handling bio_alloc failure with __GFP_WAIT.\nGFP_KERNEL implies __GFP_WAIT.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7c239517d9f18427fc2e7ed259fb3b866595f5af",
      "tree": "cd2149cc2f2eb0faa83d38fe64e1228f7c703a85",
      "parents": [
        "42364690992e592c05f85c76fda4055820b48c1b"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Nov 25 09:08:39 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 29 08:28:43 2008 +0100"
      },
      "message": "block: don\u0027t take lock on changing ra_pages\n\nThere\u0027s no need to take queue_lock or kernel_lock when modifying\nbdi-\u003era_pages. So remove them. Also remove out of date comment for\nqueue_max_sectors_store().\n\nSigned-off-by: Wu Fengguang \u003cwfg@linux.intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ba32929a91fe2c0628f5be62d1597b379c8d3062",
      "tree": "09ea54ed2d2299d25b92fee6a6dde4d7527a3d37",
      "parents": [
        "eb60fa1066622ddb2278732cf61e0c4544e82c6f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 15:29:58 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "block: make add_partition() return pointer to hd_struct\n\nMake add_partition() return pointer to the new hd_struct on success\nand ERR_PTR() value on failure.  This change will be used to fix md\nautodetection bug.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "56b26add02b4bdea81d5e0ebda60db1fe3311ad4",
      "tree": "3e9b5877f77ce24a6d17574ff3d32ae8351fa0ef",
      "parents": [
        "6af3a56e1dd4d95836a47214e5c60d5b749a5501"
      ],
      "author": {
        "name": "Al Viro",
        "email": "al@aretha.pdmi.ras.ru",
        "time": "Fri Sep 19 03:17:36 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:14 2008 -0400"
      },
      "message": "[PATCH] kill the rest of struct file propagation in block ioctls\n\nNow we can switch blkdev_ioctl() block_device/mode\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6af3a56e1dd4d95836a47214e5c60d5b749a5501",
      "tree": "757b01fe8668783fcf52a4e8fe82c5d8ebbc6b72",
      "parents": [
        "45048d0961cdbf7ddfba906797ad8cb42489e070"
      ],
      "author": {
        "name": "Al Viro",
        "email": "al@aretha.pdmi.ras.ru",
        "time": "Fri Sep 19 03:08:13 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:12 2008 -0400"
      },
      "message": "[PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET\n\nWe need to do bd_claim() only if file hadn\u0027t been opened with O_EXCL\nand then we have no need to use file itself as owner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "45048d0961cdbf7ddfba906797ad8cb42489e070",
      "tree": "d471933ccf9e8c52f608d0cef88de0569982a933",
      "parents": [
        "e436fdae70a31102d2be32969b80fe8545edebd9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "al@aretha.pdmi.ras.ru",
        "time": "Thu Sep 18 15:53:24 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:10 2008 -0400"
      },
      "message": "[PATCH] get rid of blkdev_locked_ioctl()\n\nMost of that stuff doesn\u0027t need BKL at all; expand in the (only) caller,\nmerge the switch into one there and leave BKL only around the stuff that\nmight actually need it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e436fdae70a31102d2be32969b80fe8545edebd9",
      "tree": "ab07320851fc5ae82bc422ab54dbb922a8057452",
      "parents": [
        "572c48921574dbe6dceb958cf965aa962baefde4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "al@aretha.pdmi.ras.ru",
        "time": "Thu Sep 18 03:38:12 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:49:08 2008 -0400"
      },
      "message": "[PATCH] get rid of blkdev_driver_ioctl()\n\nconvert remaining callers to __blkdev_driver_ioctl()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90b8f2824ce68dd87d304641a1d5a048dfff39f5",
      "tree": "b55ddcb619aac1e16d845dd6796c51721dd6ee56",
      "parents": [
        "40cc51be699e37b78102ce7b2196ec9c32fe1908"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 02 10:43:36 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:48:52 2008 -0400"
      },
      "message": "[PATCH] end of methods switch: remove the old ones\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d4430d62fa77208824a37fe6f85ab2831d274769",
      "tree": "5d4d0bca31e63eb208fbebe4f39c912b964c1e4d",
      "parents": [
        "badf8082c33d18b118d3a6f1b32d5ea6b97d3839"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 02 09:09:22 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:32 2008 -0400"
      },
      "message": "[PATCH] beginning of methods conversion\n\nTo keep the size of changesets sane we split the switch by drivers;\nto keep the damn thing bisectable we do the following:\n\t1) rename the affected methods, add ones with correct\nprototypes, make (few) callers handle both.  That\u0027s this changeset.\n\t2) for each driver convert to new methods.  *ALL* drivers\nare converted in this series.\n\t3) kill the old (renamed) methods.\n\nNote that it _is_ a flagday; all in-tree drivers are converted and by the\nend of this series no trace of old methods remain.  The only reason why\nwe do that this way is to keep the damn thing bisectable and allow per-driver\ndebugging if anything goes wrong.\n\nNew methods:\n\topen(bdev, mode)\n\trelease(disk, mode)\n\tioctl(bdev, mode, cmd, arg)\t\t/* Called without BKL */\n\tcompat_ioctl(bdev, mode, cmd, arg)\n\tlocked_ioctl(bdev, mode, cmd, arg)\t/* Called with BKL, legacy */\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "633a08b81206122469365b4c72eaeb71f04f2cb4",
      "tree": "9cd30507efd30645d30d351c7ad0d5966f806532",
      "parents": [
        "a0eb62a0a4470fef5a5f41e7f1442fdd667220ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 29 20:34:12 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:26 2008 -0400"
      },
      "message": "[PATCH] introduce __blkdev_driver_ioctl()\n\nAnalog of blkdev_driver_ioctl() with sane arguments.  For\nnow uses fake struct file, by the end of the series it won\u0027t\nand blkdev_driver_ioctl() will become a wrapper around it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "540eed5637b766bb1e881ef744c42617760b4815",
      "tree": "8bdf54967a8290f780216f767291623e67ee7e9b",
      "parents": [
        "074a7aca7afa6f230104e8e65eba3420263714a5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:15 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: make partition array dynamic\n\ndisk-\u003e__part used to be statically allocated to the maximum possible\nnumber of partitions.  This patch makes partition array allocation\ndynamic.  The added overhead is minimal as only real change is one\nmemory dereference changed to RCU one.  This saves both a bit of\nmemory and cpu cycles iterating through unoccupied slots and makes\nincreasing partition limit easier.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b5d0b9df0ba5d9a044f3a21e7544f53d90bd1465",
      "tree": "d3347c1cfc59cf5d38c2c9adc2423f9d9b4cf818",
      "parents": [
        "ed9e1982347b36573cd622ee5f4e2a7ccd79b3fd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 09:06:42 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: introduce partition 0\n\ngenhd and partition code handled disk and partitions separately.  All\ninformation about the whole disk was in struct genhd and partitions in\nstruct hd_struct.  However, the whole disk (part0) and other\npartitions have a lot in common and the data structures end up having\ngood number of common fields and thus separate code paths doing the\nsame thing.  Also, the partition array was indexed by partno - 1 which\ngets pretty confusing at times.\n\nThis patch introduces partition 0 and makes the partition array\nindexed by partno.  Following patches will unify the handling of disk\nand parts piece-by-piece.\n\nThis patch also implements disk_partitionable() which tests whether a\ndisk is partitionable.  With coming dynamic partition array change,\nthe most common usage of disk_max_parts() will be testing whether a\ndisk is partitionable and the number of max partitions will become\nmuch less important.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e71bf0d0ee89e51b92776391c5634938236977d5",
      "tree": "9fc62352a40ad388deebdd8ed497cab926cf0470",
      "parents": [
        "f331c0296f2a9fee0d396a70598b954062603015"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 09:03:02 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: fix disk-\u003epart[] dereferencing race\n\ndisk-\u003epart[] is protected by its matching bdev\u0027s lock.  However,\nnon-critical accesses like collecting stats and printing out sysfs and\nproc information used to be performed without any locking.  As\npartitions can come and go dynamically, partitions can go away\nunderneath those non-critical accesses.  As some of those accesses are\nwrites, this theoretically can lead to silent corruption.\n\nThis patch fixes the race by using RCU for the partition array and dev\nreference counter to hold partitions.\n\n* Rename disk-\u003epart[] to disk-\u003e__part[] to make sure no one outside\n  genhd layer proper accesses it directly.\n\n* Use RCU for disk-\u003e__part[] dereferencing.\n\n* Implement disk_{get|put}_part() which can be used to get and put\n  partitions from gendisk respectively.\n\n* Iterators are implemented to help iterate through all partitions\n  safely.\n\n* Functions which require RCU readlock are marked with _rcu suffix.\n\n* Use disk_put_part() in __blkdev_put() instead of directly putting\n  the contained kobject.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f331c0296f2a9fee0d396a70598b954062603015",
      "tree": "f74c467d58940131d97d90c4ea549843185e6ef0",
      "parents": [
        "cf771cb5a7b716f3f9e532fd42a1e3a0a75adec5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 09:01:48 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:05 2008 +0200"
      },
      "message": "block: don\u0027t depend on consecutive minor space\n\n* Implement disk_devt() and part_devt() and use them to directly\n  access devt instead of computing it from -\u003emajor and -\u003efirst_minor.\n\n  Note that all references to -\u003emajor and -\u003efirst_minor outside of\n  block layer is used to determine devt of the disk (the part0) and as\n  -\u003emajor and -\u003efirst_minor will continue to represent devt for the\n  disk, converting these users aren\u0027t strictly necessary.  However,\n  convert them for consistency.\n\n* Implement disk_max_parts() to avoid directly deferencing\n  genhd-\u003eminors.\n\n* Update bdget_disk() such that it doesn\u0027t assume consecutive minor\n  space.\n\n* Move devt computation from register_disk() to add_disk() and make it\n  the only one (all other usages use the initially determined value).\n\nThese changes clean up the code and will help disk-\u003epart dereference\nfix and extended block device numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cf771cb5a7b716f3f9e532fd42a1e3a0a75adec5",
      "tree": "c16cf6adc4d2e51eaee77088ecf126b721f8f3c7",
      "parents": [
        "310a2c1012934f590192377f65940cad4aa72b15"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 09:01:09 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:05 2008 +0200"
      },
      "message": "block: make variable and argument names more consistent\n\nIn hd_struct, @partno is used to denote partition number and a number\nof other places use @part to denote hd_struct.  Functions use @part\nand @index instead.  This causes confusion and makes it difficult to\nuse consistent variable names for hd_struct.  Always use @partno if a\nvariable represents partition number.\n\nAlso, print out functions use @f or @part for seq_file argument.  Use\n@seqf uniformly instead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "88e341261ca4d39eec21b212961c77eff51105f7",
      "tree": "b65315c446ce592e6a0dc521eab9acd92ae61c5e",
      "parents": [
        "ec2cdedf798385a9397ac50dd0405dd658f8529c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:30:16 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "block: update add_partition() error handling\n\nd805dda4 tried to fix error case handling in add_partition() but had a\nfew problems.\n\n* disk-\u003epart[] entry is set early and left dangling if operation\n  fails.\n\n* Once device initialized, the last put_device() is responsible for\n  freeing all the resources.  The failure path freed part_stats and p\n  regardless of put_device() causing double free.\n\n* holders subdir holds reference to the disk device, so failure path\n  should remove it to release resources properly which was missing.\n\nThis patch fixes the above problems and while at it move partition\nslot busy check into add_partition() for completeness and inlines\nholders subdirectory creation.  Using separate function for it just\nobfuscates the code.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Abdel Benamrouche \u003cdraconux@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ec2cdedf798385a9397ac50dd0405dd658f8529c",
      "tree": "cd1c44d91a2baa4a56e0ca1ce6b854beb7cb3c39",
      "parents": [
        "def4e38ddda9bef20b69bfa939195c2f79da7979"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:30:15 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "block: allow deleting zero length partition\n\ndelete_partition() was noop for zero length partition.  As the\naddition code allows creating zero lenght partition and deletion is\nassumed to always succeed, this causes memory leak for zero length\npartitions.  Allow zero length partitions to end their meaningless\nlives.\n\nWhile at it, allow deleting zero lenght partition via\nBLKPG_DEL_PARTITION ioctl too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e17fc0a1ccf88f6d4dcb363729f3141b0958c325",
      "tree": "0a7c2dc1c3159c2af14d87c67ca83e158b2c78b5",
      "parents": [
        "d30a2605be9d5132d95944916e8f578fcfe4f976"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Aug 09 16:42:20 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:02 2008 +0200"
      },
      "message": "Allow elevators to sort/merge discard requests\n\nBut blkdev_issue_discard() still emits requests which are interpreted as\nsoft barriers, because naïve callers might otherwise issue subsequent\nwrites to those same sectors, which might cross on the queue (if they\u0027re\nreallocated quickly enough).\n\nCallers still _can_ issue non-barrier discard requests, but they have to\ntake care of queue ordering for themselves.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d30a2605be9d5132d95944916e8f578fcfe4f976",
      "tree": "91a8161cb09536ab838ef47fceabb0da0bea9256",
      "parents": [
        "2ebca85abcfcbaaf1c0b242e39fc88ad3da90090"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Aug 11 15:58:42 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:02 2008 +0200"
      },
      "message": "Add BLKDISCARD ioctl to allow userspace to discard sectors\n\nWe may well want mkfs tools to use this to mark the whole device as\nunwanted before they format it, for example.\n\nThe ioctl takes a pair of uint64_ts, which are start offset and length\nin _bytes_. Although at the moment it might make sense for them both to\nbe in 512-byte sectors, I don\u0027t want to limit the ABI to that.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "04ebd4aee52b06a2c38127d9208546e5b96f3a19",
      "tree": "25014f06e7bf53ec0b51d717a6a8d0cfb545d985",
      "parents": [
        "d805dda412346225a50af2d399d958a4bc676c38"
      ],
      "author": {
        "name": "Abdel Benamrouche",
        "email": "draconux@gmail.com",
        "time": "Fri Jul 25 01:48:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:44 2008 -0700"
      },
      "message": "block/ioctl.c and fs/partition/check.c: check value returned by add_partition()\n\nNow that add_partition() has been aught to propagate errors, let\u0027s check them.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Abdel Benamrouche \u003cdraconux@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f58c4c0a17e500e767473598b3deafaa1d64051d",
      "tree": "f8fbf3a2ce10a9fccf41f2f96bca1ca71b3dd77e",
      "parents": [
        "d2bbf3da3759d04cd5836955cc59c8ae96092831"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 09 13:23:51 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:26:00 2007 +0200"
      },
      "message": "compat_ioctl: move common block ioctls to compat_blkdev_ioctl\n\nMake compat_blkdev_ioctl and blkdev_ioctl reflect the respective\nnative versions. This is somewhat more efficient and makes it easier\nto keep the two in sync.\n\nAlso get rid of the bogus handling for broken_blkgetsize and the\nduplicate entry for BLKRASET.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f98393a64ca1392130724c3acb4e3f325801d2b6",
      "tree": "b02838bdf84156ac923bb37b6cf5f5ed6aaa3d48",
      "parents": [
        "0a27a14a62921b438bb6f33772690d345a089be6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 06 14:49:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: remove destroy_dirty_buffers from invalidate_bdev()\n\nRemove the destroy_dirty_buffers argument from invalidate_bdev(), it hasn\u0027t\nbeen used in 6 years (so akpm says).\n\nfind * -name \\*.[ch] | xargs grep -l invalidate_bdev |\nwhile read file; do\n\tquilt add $file;\n\tsed -ie \u0027s/invalidate_bdev(\\([^,]*\\),[^)]*)/invalidate_bdev(\\1)/g\u0027 $file;\ndone\n\nSigned-off-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": "6d740cd5b18bc8128e70f98cfde8c74ebd21cea1",
      "tree": "c3283d3e98b04b66f1d8b15ff76dc7362ea12d2d",
      "parents": [
        "d5c1682f9f8f4aa064f81fda67ea7b91fd829512"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Feb 20 13:58:18 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 20 17:10:16 2007 -0800"
      },
      "message": "[PATCH] lockdep: annotate BLKPG_DEL_PARTITION\n\n\u003e\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e[ INFO: possible recursive locking detected ]\n\u003e2.6.19-1.2909.fc7 #1\n\u003e---------------------------------------------\n\u003eanaconda/587 is trying to acquire lock:\n\u003e (\u0026bdev-\u003ebd_mutex){--..}, at: [\u003cc05fb380\u003e] mutex_lock+0x21/0x24\n\u003e\n\u003ebut task is already holding lock:\n\u003e (\u0026bdev-\u003ebd_mutex){--..}, at: [\u003cc05fb380\u003e] mutex_lock+0x21/0x24\n\u003e\n\u003eother info that might help us debug this:\n\u003e1 lock held by anaconda/587:\n\u003e #0:  (\u0026bdev-\u003ebd_mutex){--..}, at: [\u003cc05fb380\u003e] mutex_lock+0x21/0x24\n\u003e\n\u003estack backtrace:\n\u003e [\u003cc0405812\u003e] show_trace_log_lvl+0x1a/0x2f\n\u003e [\u003cc0405db2\u003e] show_trace+0x12/0x14\n\u003e [\u003cc0405e36\u003e] dump_stack+0x16/0x18\n\u003e [\u003cc043bd84\u003e] __lock_acquire+0x116/0xa09\n\u003e [\u003cc043c960\u003e] lock_acquire+0x56/0x6f\n\u003e [\u003cc05fb1fa\u003e] __mutex_lock_slowpath+0xe5/0x24a\n\u003e [\u003cc05fb380\u003e] mutex_lock+0x21/0x24\n\u003e [\u003cc04d82fb\u003e] blkdev_ioctl+0x600/0x76d\n\u003e [\u003cc04946b1\u003e] block_ioctl+0x1b/0x1f\n\u003e [\u003cc047ed5a\u003e] do_ioctl+0x22/0x68\n\u003e [\u003cc047eff2\u003e] vfs_ioctl+0x252/0x265\n\u003e [\u003cc047f04e\u003e] sys_ioctl+0x49/0x63\n\u003e [\u003cc0404070\u003e] syscall_call+0x7/0xb\n\nAnnotate BLKPG_DEL_PARTITION\u0027s bd_mutex locking and add a little comment\nclarifying the bd_mutex locking, because I confused myself and initially\nthought the lock order was wrong too.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d18d7682c18b617f523df6beea5ea0bd396ed0bd",
      "tree": "8e005fee2e13134e9ebdd1a3b71ef72b84351b19",
      "parents": [
        "66efc5a7e3061c3597ac43a8bb1026488d57e66b"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Sat Feb 10 23:50:00 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 10 23:50:00 2007 -0800"
      },
      "message": "[PARTITION]: Add whole_disk attribute.\n\nSome partitioning systems create special partitions that\nspan the entire disk.  One example are Sun partitions, and\nthis whole-disk partition exists to tell the firmware the\nextent of the entire device so it can load the boot block\nand do other things.\n\nSuch partitions should not be treated as normal partitions,\nbecause all the other partitions overlap this whole-disk one.\nSo we\u0027d see multiple instances of the same UUID etc. which\nwe do not want.  udev and friends can thus search for this\n\u0027whole_disk\u0027 attribute and use it to decide to ignore the\npartition.\n\nSigned-off-by: Fabio Massimo Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5a20b6c26efb58c2ba2ebebcc65748f5b92f662",
      "tree": "5dd1a27835594b7f27620981bfded11255a418ab",
      "parents": [
        "61a8424ab8f611d199bfc8ca329ec0ea77a4d4ea"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:44 2006 -0800"
      },
      "message": "[PATCH] struct path: convert block\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e7b651df113c8a463853e4169951c52c39f9d19",
      "tree": "44749ea9d81931cbe5a753b972f6b9fde92a6496",
      "parents": [
        "32694850a91bd4fedcdd4a46292f870588be81d1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Dec 08 02:36:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:38 2006 -0800"
      },
      "message": "[PATCH] remove the old bd_mutex lockdep annotation\n\nRemove the old complex and crufty bd_mutex annotation.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7006f6eca874cd44d37ccb8cfeb8bed04e3bff22",
      "tree": "2e0827157e770e62493dea144e5d9ef73091e554",
      "parents": [
        "9af4aa30b713a58e5952045f52c41a6e3baa2fdc"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 03 01:15:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:13 2006 -0700"
      },
      "message": "[PATCH] dm: export blkdev_driver_ioctl\n\nExport blkdev_driver_ioctl for device-mapper.\n\nIf we get as far as the device-mapper ioctl handler, we know the ioctl is not\na standard block layer BLK* one, so we don\u0027t need to check for them a second\ntime and can call blkdev_driver_ioctl() directly.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ddca60c59032b2c2babc0003cf01015aff340b79",
      "tree": "c836af2259cb55ebae060268c52b1d3f4773d819",
      "parents": [
        "7e56a7dcbb974d9725d80e50d70c6eed7f71110b"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 14 00:24:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:53 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate the BLKPG_DEL_PARTITION ioctl\n\nThe delete partition IOCTL takes the bd_mutex for both the disk and the\npartition; these have an obvious hierarchical relationship and this patch\nannotates this relationship for lockdep.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4",
      "tree": "d4fe59a7ca0c110690937085548936a4535c39db",
      "parents": [
        "6dac40a7ce2483a47b54af07afebeb84131c7228"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "message": "[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "c039e3134ae62863bbc8e8429b29e3c43cf21b2a",
      "tree": "b9bbf4fda0844e3173bf10a5bffbaaec94fb4246",
      "parents": [
        "6f87f0deebaff2716a3ce9232f948d702690562a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:11 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: blockdev #2\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a885c8c4316e1c1d2d2c8755da3f3d14f852528d",
      "tree": "e4f4e7a7657c0944d11c259f8f17ffcd6b2da0f5",
      "parents": [
        "5b0ed2c64d8fdafb5fcfb3baabdd288628b1ff9b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Jan 08 01:02:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:54 2006 -0800"
      },
      "message": "[PATCH] Add block_device_operations.getgeo block device method\n\nHDIO_GETGEO is implemented in most block drivers, and all of them have to\nduplicate the code to copy the structure to userspace, as well as getting\nthe start sector.  This patch moves that to common code [1] and adds a\n-\u003egetgeo method to fill out the raw kernel hd_geometry structure.  For many\ndrivers this means -\u003eioctl can go away now.\n\n[1] the s390 block drivers are odd in this respect.  xpram sets -\u003estart\n    to 4 always which seems more than odd, and the dasd driver shifts\n    the start offset around, probably because of it\u0027s non-standard\n    sector size.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: \u003cmike.miller@hp.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cB.Zolnierkiewicz@elka.pw.edu.pl\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a65dfe8c088143c7155cfd36a72f4b0ad2fc4b2",
      "tree": "db930c9f71f94d3ee674f65e38c38e95ca97227e",
      "parents": [
        "0f3278d14f0255e4cd9e07ccefc33ff12d8bb59c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Nov 04 08:43:35 2005 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Nov 04 08:43:35 2005 +0100"
      },
      "message": "[BLOCK] Move all core block layer code to new block/ directory\n\ndrivers/block/ is right now a mix of core and driver parts. Lets move\nthe core parts to a new top level directory. Al will move the fs/\nrelated block parts to block/ next.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "bb93e3a52f8db7210258a1a2134cced0b78a46e1",
      "tree": "b6def4c3fe5624769de64e242bb2007fffea55c8",
      "parents": [
        "0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jun 23 00:10:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] block: add unlocked_ioctl support for block devices\n\nThis patch allows block device drivers to convert their ioctl functions to\nunlocked_ioctl() like character devices and other subsystems.  All\nfunctions that were called with the BKL held before are still used that\nway, but I would not be surprised if it could be removed from the ioctl\nfunctions in drivers/block/ioctl.c themselves.\n\nAs a side note, I found that compat_blkdev_ioctl() acquires the BKL as\nwell, which looks like a bug.  I have checked that every user of\ndisk-\u003efops-\u003ecompat_ioctl() in the current git tree gets the BKL itself, so\nit could easily be removed from compat_blkdev_ioctl().\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68f66feb300423bb9ee5daecb1951af394425a38",
      "tree": "ae5ce87f061f76da06cb78ce5c9cf3c8284fc0fc",
      "parents": [
        "a84a505956f5c795a9ab3d60d97b6b91a27aa571"
      ],
      "author": {
        "name": "Stephen Tweedie",
        "email": "sct@redhat.com",
        "time": "Fri May 13 23:31:19 2005 -0400"
      },
      "committer": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Mon May 16 21:07:21 2005 -0700"
      },
      "message": "[PATCH] Fix root hole in raw device\n\n[Patch] Fix raw device ioctl pass-through\n\nRaw character devices are supposed to pass ioctls through to the block\ndevices they are bound to.  Unfortunately, they are using the wrong\nfunction for this: ioctl_by_bdev(), instead of blkdev_ioctl().\n\nioctl_by_bdev() performs a set_fs(KERNEL_DS) before calling the ioctl,\nredirecting the user-space buffer access to the kernel address space.\nThis is, needless to say, a bad thing.\n\nThis was noticed first on s390, where raw IO was non-functioning.  The\ns390 driver config does not actually allow raw IO to be enabled, which\nwas the first part of the problem.  Secondly, the s390 kernel address\nspace is distinct from user, causing legal raw ioctls to fail.  I\u0027ve\nreproduced this on a kernel built with 4G:4G split on x86, which fails\nin the same way (-EFAULT if the address does not exist kernel-side;\nreturns success without actually populating the user buffer if it does.)\n\nThe patch below fixes both the config and address-space problems.  It\u0027s\nbased closely on a patch by Jan Glauber \u003cjang@de.ibm.com\u003e, which has\nbeen tested on s390 at IBM.  I\u0027ve tested it on x86 4G:4G (split address\nspace) and x86_64 (common address space).\n\nKernel-address-space access has been assigned CAN-2005-1264.\n\nSigned-off-by: Stephen Tweedie \u003csct@redhat.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
