)]}'
{
  "log": [
    {
      "commit": "b04accc425d52ca59699290661e0dfd09b0feeeb",
      "tree": "2d30e03b384e9a6c990006c4c68176b56fd53fbe",
      "parents": [
        "8deaf7210728c453295dc1cb2a5b66c68183ac85"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 02 12:53:22 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "block: revert part of d7533ad0e132f92e75c1b2eb7c26387b25a583c1\n\nWe need bdev_get_integrity() to support the pending md/dm patches.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8deaf7210728c453295dc1cb2a5b66c68183ac85",
      "tree": "bb4bead2773c733e5164a44b784c9601b458821d",
      "parents": [
        "d00e29fd99dd63d1c51917604e35dee824ed567f"
      ],
      "author": {
        "name": "Alberto Bertogli",
        "email": "albertito@blitiri.com.ar",
        "time": "Thu Oct 02 12:46:53 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "bio.h: Remove unused conditional code\n\nThe whole bio_integrity() definition is inside an #ifdef\nCONFIG_BLK_DEV_INTEGRITY, there\u0027s no need for the conditional code.\n\nSigned-off-by: Alberto Bertogli \u003calbertito@blitiri.com.ar\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d00e29fd99dd63d1c51917604e35dee824ed567f",
      "tree": "461c725d7ffaf2d5a69bc854ca4aa9977f530ea2",
      "parents": [
        "99cd3386f290eaf61f2b7596d5a4cc2007771174"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed Oct 01 10:14:46 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "block: remove end_{queued|dequeued}_request()\n\nThis patch removes end_queued_request() and end_dequeued_request(),\nwhich are no longer used.\n\nAs a results, users of __end_request() became only end_request().\nSo the actual code in __end_request() is moved to end_request()\nand __end_request() is removed.\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\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "99cd3386f290eaf61f2b7596d5a4cc2007771174",
      "tree": "90f93246c060a33b90d0ef3d98f327768f167909",
      "parents": [
        "7afb3a6e752503d5ebeb038336aa0fa886a51b44"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed Oct 01 10:13:44 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "block: change elevator to use __blk_end_request()\n\nThis patch converts elevator to use __blk_end_request() directly\nso that end_{queued|dequeued}_request() can be removed.\nRelated \u0027uptodate\u0027 arguments is converted to \u0027error\u0027.\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\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7afb3a6e752503d5ebeb038336aa0fa886a51b44",
      "tree": "e2797bd14291211e364adf255e50e8b5e4f3bc7b",
      "parents": [
        "2a9df5055a99df25533daf4041fdb99f0ed3463c"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed Oct 01 10:13:02 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "gdrom: change to use __blk_end_request()\n\nThis patch converts gdrom to use __blk_end_request() directly\nso that end_{queued|dequeued}_request() can be removed.\n\ngd.transfer is \u00271\u0027 in error cases and \u00270\u0027 in non-error cases,\nso gdrom hasn\u0027t been propagating any error code to the block layer.\nWe can just convert error cases to \u0027-EIO\u0027.\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\nCc: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2a9df5055a99df25533daf4041fdb99f0ed3463c",
      "tree": "48a62d02ee13c12fdbf99e3de0a8bbcbc23bc4c2",
      "parents": [
        "8316982ac06d7d8875dc8738efbb030791dc33bb"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed Oct 01 10:12:15 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:20 2008 +0200"
      },
      "message": "memstick: change to use __blk_end_request()\n\nThis patch converts memstick to use __blk_end_request() directly\nso that end_{queued|dequeued}_request() can be removed.\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\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8316982ac06d7d8875dc8738efbb030791dc33bb",
      "tree": "418ba7251e267f0a06d2e6bd8bb9783b12580bae",
      "parents": [
        "0497b345e7d067109e0dd9bf9f4978a6847ee13b"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed Oct 01 10:11:20 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:20 2008 +0200"
      },
      "message": "virtio_blk: change to use __blk_end_request()\n\nThis patch converts virtio_blk to use __blk_end_request() directly\nso that end_{queued|dequeued}_request() can be removed.\nRelated \u0027uptodate\u0027 argument is converted to \u0027error\u0027.\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\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0497b345e7d067109e0dd9bf9f4978a6847ee13b",
      "tree": "8c181a200c9e883a9c85169dff887bfb9109ee5e",
      "parents": [
        "ef9e3facdf1fe1228721a7c295a76d1b7a0e57ec"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 01 16:16:25 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:20 2008 +0200"
      },
      "message": "blktrace: use BLKTRACE_BDEV_SIZE as the name size for setup structure\n\nDefine as 32, which is is what BDEVNAME_SIZE is/was as well. This keeps\nthe user interface the same and gets rid of the difference between\nkernel and user api here.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ef9e3facdf1fe1228721a7c295a76d1b7a0e57ec",
      "tree": "33847b1e267895ea58c2399c06cdd23365c7dc73",
      "parents": [
        "336c3d8ce771608815b65bcfa27a17a83b297328"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed Oct 01 16:12:15 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:20 2008 +0200"
      },
      "message": "block: add lld busy state exporting interface\n\nThis patch adds an new interface, blk_lld_busy(), to check lld\u0027s\nbusy state from the block layer.\nblk_lld_busy() calls down into low-level drivers for the checking\nif the drivers set q-\u003elld_busy_fn() using blk_queue_lld_busy().\n\nThis resolves a performance problem on request stacking devices below.\n\nSome drivers like scsi mid layer stop dispatching request when\nthey detect busy state on its low-level device like host/target/device.\nIt allows other requests to stay in the I/O scheduler\u0027s queue\nfor a chance of merging.\n\nRequest stacking drivers like request-based dm should follow\nthe same logic.\nHowever, there is no generic interface for the stacked device\nto check if the underlying device(s) are busy.\nIf the request stacking driver dispatches and submits requests to\nthe busy underlying device, the requests will stay in\nthe underlying device\u0027s queue without a chance of merging.\nThis causes performance problem on burst I/O load.\n\nWith this patch, busy state of the underlying device is exported\nvia q-\u003elld_busy_fn().  So the request stacking driver can check it\nand stop dispatching requests if busy.\n\nThe underlying device driver must return the busy state appropriately:\n    1: when the device driver can\u0027t process requests immediately.\n    0: when the device driver can process requests immediately,\n       including abnormal situations where the device driver needs\n       to kill all requests.\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\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "336c3d8ce771608815b65bcfa27a17a83b297328",
      "tree": "91841449cf24ee051ff1daefcb60a8fbefe2522a",
      "parents": [
        "c0ddffa84a7d12da9943a94d04dadbfb1883b904"
      ],
      "author": {
        "name": "Elias Oltmanns",
        "email": "eo@nebensachen.de",
        "time": "Wed Oct 01 16:02:33 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:20 2008 +0200"
      },
      "message": "block: Fix blk_start_queueing() to not kick a stopped queue\n\nblk_start_queueing() should act like the generic queue unplugging\nand kicking and ignore a stopped queue. Such a queue may not be\nrun until after a call to blk_start_queue().\n\nSigned-off-by: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c0ddffa84a7d12da9943a94d04dadbfb1883b904",
      "tree": "3598e05a07650383a5949debb977b2c0ad5cb522",
      "parents": [
        "e3ba9ae58a5599226e3976b29c8093041ae7c332"
      ],
      "author": {
        "name": "Sven Schuetz",
        "email": "sven@linux.vnet.ibm.com",
        "time": "Fri Sep 26 10:58:02 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "include blktrace_api.h in headers_install\n\nThis header file is of interest for user space programming, i.e.\nfor tools that process blktrace data.\n\nWe would like to use it for a tool on-top of blktrace which processes\ndata provided by blktrace. For this purpose, it would be helpful\nif the blktrace API would make it to /usr/include/linux.\n\nThe git tree for the blktrace tools comes with its own copy of this header\nfile. I didn\u0027t manage to replace that copy with the file generated\nby the patch below yet. A few more cleanups would be needed.\nFor example, the blktrace ioctl numbers, which are currently defined in\nusr/include/fs.h, might need to be moved. Should be feasible, though.\n\nSigned-off-by: Sven Schuetz \u003csven@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e3ba9ae58a5599226e3976b29c8093041ae7c332",
      "tree": "5e8a7c0c1b675e19fa6209489479fe9b799a1b3e",
      "parents": [
        "f7d7b7a7a3db6526a84ea755c1c54a051e9a52de"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 25 11:42:41 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "block: reserve some tags just for sync IO\n\nBy only allowing async IO to consume 3/4 ths of the tag depth, we\nalways have slots free to serve sync IO. This is important to avoid\nhaving writes fill the entire tag queue, thus starving reads.\n\nOriginal patch and idea from Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f7d7b7a7a3db6526a84ea755c1c54a051e9a52de",
      "tree": "4d02c3abfca1c6175527473dff12769b09b630bb",
      "parents": [
        "8bff7c6b0f63c7ee9c5e3a076338d74125b8debb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 25 11:37:50 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "block: as/cfq ssd idle check update\n\nWe really need to know about the hardware tagging support as well,\nsince if the SSD does not do tagging then we still want to idle.\nOtherwise have the same dependent sync IO vs flooding async IO\nproblem as on rotational media.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8bff7c6b0f63c7ee9c5e3a076338d74125b8debb",
      "tree": "0863c7e0d09592ee9f4d568625348ef12e4a30df",
      "parents": [
        "a68bbddba486020c9c74825ce90c4c1ec463e0e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 24 13:05:10 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "libata: set queue SSD flag for SSD devices\n\nSSD devices should give an RPM setting of 1 in word 217 of the ID\npage. If we see such a device, tell the block layer about it.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a68bbddba486020c9c74825ce90c4c1ec463e0e8",
      "tree": "ce0acea1e609185968310316d3d1ac6f730db983",
      "parents": [
        "9e49184c82e9ec3ab4d45f9ea5a17ccaf43869f0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 24 13:03:33 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "block: add queue flag for SSD/non-rotational devices\n\nWe don\u0027t want to idle in AS/CFQ if the device doesn\u0027t have a seek\npenalty. So add a QUEUE_FLAG_NONROT to indicate a non-rotational\ndevice, low level drivers should set this flag upon discovery of\nan SSD or similar device type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9e49184c82e9ec3ab4d45f9ea5a17ccaf43869f0",
      "tree": "532d70e75854e1f7c070d4818f3b44cefe528d3e",
      "parents": [
        "061837bc8687edc2739ef02f721b7ae0b8076390"
      ],
      "author": {
        "name": "Keith Wansbrough",
        "email": "keith@lochan.org",
        "time": "Mon Sep 22 14:57:17 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "floppy: support arbitrary first-sector numbers\n\nThe current floppy_struct allows floppies to number sectors starting\nfrom 0 or 1.  This patch allows arbitrary first-sector numbers - for\nexample, 0xC1 for Amstrad CPC disks.\n\nThis extends the existing 1-bit field (FD_ZEROBASED, bit 2 of stretch)\nto 8 bits (FD_SECTMASK, bits 2 to 9).\n\nCurrently 0x00 denotes a first sector number of 1, and 0x01 denotes a\nfirst sector number of 0.  We extend this by interpreting FD_SECTMASK\nas the first sector number with the LSB flipped.\n\nSigned-off-by: Keith Wansbrough \u003ckeith@lochan.org\u003e\nCc: Alain Knaff \u003calain@linux.lu\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "061837bc8687edc2739ef02f721b7ae0b8076390",
      "tree": "e1c59ea7212949a91b2cf19ed125c0db24052b29",
      "parents": [
        "905bd78f2188da69e74966918e3d71df3dff382b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Sep 22 14:57:16 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "drivers/block: Use DIV_ROUND_UP\n\nThe kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) /\n(d)) but is perhaps more readable.\n\nAn extract of the semantic patch that makes this change is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@haskernel@\n@@\n\n#include \u003clinux/kernel.h\u003e\n\n@depends on haskernel@\nexpression n,d;\n@@\n\n(\n- (n + d - 1) / d\n+ DIV_ROUND_UP(n,d)\n|\n- (n + (d - 1)) / d\n+ DIV_ROUND_UP(n,d)\n)\n\n@depends on haskernel@\nexpression n,d;\n@@\n\n- DIV_ROUND_UP((n),d)\n+ DIV_ROUND_UP(n,d)\n\n@depends on haskernel@\nexpression n,d;\n@@\n\n- DIV_ROUND_UP(n,(d))\n+ DIV_ROUND_UP(n,d)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: \u003cmike.miller@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "905bd78f2188da69e74966918e3d71df3dff382b",
      "tree": "bfe96fedd70cf56a9a7c1585bc7f5965c3fb47e3",
      "parents": [
        "79eb014578b79fcfb9d9e7dc979d1316079220aa"
      ],
      "author": {
        "name": "scameron@beardog.cca.cpqcorp.net",
        "email": "scameron@beardog.cca.cpqcorp.net",
        "time": "Fri Sep 19 18:27:47 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "cciss: Fix cciss SCSI rescan code to better notice device changes\n\nFix cciss SCSI rescan code to better notice device changes.\nIf you hot-unplug a tape drive, then hot-plug a different\ntape drive into the same slot in a storage enclosure,\nthe cciss driver wouldn\u0027t notice anything had changed, as\nit was only looking at the LUN address and device type.\nNow it looks at the inquiry page 0x83 device identifier,\nand vendor and model strings as well.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cca.cpqcorp.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "79eb014578b79fcfb9d9e7dc979d1316079220aa",
      "tree": "7e6101ba2cc0d105a877df432af17650bf082387",
      "parents": [
        "4ee5eaf4516a60f8ef64d3c246c64c6be0cf8c3a"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Sep 18 09:35:28 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "fix an example of scatterlists handling in DMA-API.txt\n\nThis example isn\u0027t the proper way to handle scatterlists (can\u0027t handle\nsg chaining).\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": "4ee5eaf4516a60f8ef64d3c246c64c6be0cf8c3a",
      "tree": "3097d305534cd3a0fbfcca31ab5f4079b90e0fc3",
      "parents": [
        "82124d60354846623a4b94af335717a5e142a074"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Sep 18 10:46:13 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "block: add a queue flag for request stacking support\n\nThis patch adds a queue flag to indicate the block device can be\nused for request stacking.\n\nRequest stacking drivers need to stack their devices on top of\nonly devices of which q-\u003erequest_fn is functional.\nSince bio stacking drivers (e.g. md, loop) basically initialize\ntheir queue using blk_alloc_queue() and don\u0027t set q-\u003erequest_fn,\nthe check of (q-\u003erequest_fn \u003d\u003d NULL) looks enough for that purpose.\n\nHowever, dm will become both types of stacking driver (bio-based and\nrequest-based).  And dm will always set q-\u003erequest_fn even if the dm\ndevice is bio-based of which q-\u003erequest_fn is not functional actually.\nSo we need something else to distinguish the type of the device.\nAdding a queue flag is a solution for that.\n\nThe reason why dm always sets q-\u003erequest_fn is to keep\nthe compatibility of dm user-space tools.\nCurrently, all dm user-space tools are using bio-based dm without\nspecifying the type of the dm device they use.\nTo use request-based dm without changing such tools, the kernel\nmust decide the type of the dm device automatically.\nThe automatic type decision can\u0027t be done at the device creation time\nand needs to be deferred until such tools load a mapping table,\nsince the actual type is decided by dm target type included in\nthe mapping table.\n\nSo a dm device has to be initialized using blk_init_queue()\nso that we can load either type of table.\nThen, all queue stuffs are set (e.g. q-\u003erequest_fn) and we have\nno element to distinguish that it is bio-based or request-based,\neven after a table is loaded and the type of the device is decided.\n\nBy the way, some stuffs of the queue (e.g. request_list, elevator)\nare needless when the dm device is used as bio-based.\nBut the memory size is not so large (about 20[KB] per queue on ia64),\nso I hope the memory loss can be acceptable for bio-based dm users.\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\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "82124d60354846623a4b94af335717a5e142a074",
      "tree": "af7b98d5ef57483cfac53cc4866194391c3ff7b7",
      "parents": [
        "32fab448e5e86694beade415e750363538ea5f49"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Sep 18 10:45:38 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "block: add request submission interface\n\nThis patch adds blk_insert_cloned_request(), a generic request\nsubmission interface for request stacking drivers.\nRequest-based dm will use it to submit their clones to underlying\ndevices.\n\nblk_rq_check_limits() is also added because it is possible that\nthe lower queue has stronger limitations than the upper queue\nif multiple drivers are stacking at request-level.\nNot only for blk_insert_cloned_request()\u0027s internal use, the function\nwill be used by request-based dm when the queue limitation is\nmodified (e.g. by replacing dm\u0027s table).\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\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "32fab448e5e86694beade415e750363538ea5f49",
      "tree": "6eab6189afba893c302fa6acca1a89406fd620c6",
      "parents": [
        "e3335de94067dbebe22e3962632ead34e832cb60"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Sep 18 10:45:09 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "block: add request update interface\n\nThis patch adds blk_update_request(), which updates struct request\nwith completing its data part, but doesn\u0027t complete the struct\nrequest itself.\nThough it looks like end_that_request_first() of older kernels,\nblk_update_request() should be used only by request stacking drivers.\n\nRequest-based dm will use it in bio-\u003ebi_end_io callback to update\nthe original request when a data part of a cloned request completes.\nFollowings are additional background information of why request-based\ndm needs this interface.\n\n  - Request stacking drivers can\u0027t use blk_end_request() directly from\n    the lower driver\u0027s completion context (bio-\u003ebi_end_io or rq-\u003eend_io),\n    because some device drivers (e.g. ide) may try to complete\n    their request with queue lock held, and it may cause deadlock.\n    See below for detailed description of possible deadlock:\n    \u003chttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d120311479108569\u0026w\u003d2\u003e\n\n  - To solve that, request-based dm offloads the completion of\n    cloned struct request to softirq context (i.e. using\n    blk_complete_request() from rq-\u003eend_io).\n\n  - Though it is possible to use the same solution from bio-\u003ebi_end_io,\n    it will delay the notification of bio completion to the original\n    submitter.  Also, it will cause inefficient partial completion,\n    because the lower driver can\u0027t perform the cloned request anymore\n    and request-based dm needs to requeue and redispatch it to\n    the lower driver again later.  That\u0027s not good.\n\n  - So request-based dm needs blk_update_request() to perform the bio\n    completion in the lower driver\u0027s completion context, which is more\n    efficient.\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\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e3335de94067dbebe22e3962632ead34e832cb60",
      "tree": "93d88fd70ce8af33d9444e9af91a4e0635a64c96",
      "parents": [
        "9246b5f06deeea541e7c62437c2ad19a0b1172c0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 18 09:22:54 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "block: blk_cleanup_queue() should call blk_sync_queue()\n\nWhen a driver calls blk_cleanup_queue(), the device should be fully idle.\nHowever, the block layer may have pending plugging timers and the IO\nschedulers may have pending work in the work queues. So quisce the device\nby waiting for the timer and flushing the work queues.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9246b5f06deeea541e7c62437c2ad19a0b1172c0",
      "tree": "b7af564d1e32ce4eceba6f6a438256d6c3ca77fd",
      "parents": [
        "9c02f2b02e29a2244e36c6e1f246080d8afc6cff"
      ],
      "author": {
        "name": "Chris Lalancette",
        "email": "clalance@redhat.com",
        "time": "Wed Sep 17 14:30:32 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:18 2008 +0200"
      },
      "message": "block: Expand Xen blkfront for \u003e 16 xvd\n\nUntil recently, the maximum number of xvd block devices you could attach\nto a Xen domU was 16. This limitation turned out to be problematic for\nsome users, so it was expanded to handle a much larger number of disks.\nHowever, this requires a couple of changes in the way that blkfront\nscans for disks. This functionality is already present in the Xen\nlinux-2.6.18-xen.hg tree; the attached patch adds this functionality to\nthe mainline xen-blkfront implementation. I successfully tested it on a\n2.6.25 tree, and build tested it on 2.6.27-rc3.\n\nSigned-off-by: Chris Lalancette \u003cclalance@redhat.com\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9c02f2b02e29a2244e36c6e1f246080d8afc6cff",
      "tree": "d917ffa2e6ea5a75d180b72cc16e786da6a4b437",
      "parents": [
        "7ba1fbaa4a478f72fbaf5a56af9c82a77966b4c7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 18 09:31:53 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: cleanup some of the integrity stuff in blkdev.h\n\nDon\u0027t put functions that are only used in fs/bio-integrity.c in\nblkdev.h, it\u0027s much cleaner to just keep it in there. Also kill\ncompletely unused bdev_get_tag_size()\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7ba1fbaa4a478f72fbaf5a56af9c82a77966b4c7",
      "tree": "275c1d86386d7db9fa75840363230098ca6bddd3",
      "parents": [
        "581d4e28d9195aa8b2231383dbabc288988d615e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 16 09:54:11 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: use rq complete marking in blk_abort_request()\n\nWe cannot abort a request if we raced with the timeout handler already,\nor with the IO completion. So make blk_abort_request() mark the request\nas complete, and only continue if we succeeded.\n\nFound and suggested by Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "581d4e28d9195aa8b2231383dbabc288988d615e",
      "tree": "093bcac9a538ef67edcf91826f7532bdb88e6248",
      "parents": [
        "0a0d96b03a1f3bfd6bc3ea08008699e8e59fccd9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Sep 14 05:56:33 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: add fault injection mechanism for faking request timeouts\n\nOnly works for the generic request timer handling. Allows one to\nsporadically ignore request completions, thus exercising the timeout\nhandling.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "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": "3e6053d76dcbd92b2f9f4ad5ece9bce83149523e",
      "tree": "0e7ab62872071c39e2475decb769b9715de75376",
      "parents": [
        "4677735f03f5b6b6f2182f457a921855cadfb85b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Sep 11 10:57:55 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:17 2008 +0200"
      },
      "message": "block: adjust blkdev_issue_discard for swap\n\nTwo mods to blkdev_issue_discard(), thinking ahead to its use on swap:\n\n1. Add gfp_mask argument, so swap allocation can use it where GFP_KERNEL\n   might deadlock but GFP_NOIO is safe.\n\n2. Enlarge nr_sects argument from unsigned to sector_t: unsigned long is\n   enough to cover a whole swap area, but sector_t suits any partition.\n\nChange sb_issue_discard()\u0027s nr_blocks to sector_t too; but no need seen\nfor a gfp_mask there, just pass GFP_KERNEL down to blkdev_issue_discard().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4677735f03f5b6b6f2182f457a921855cadfb85b",
      "tree": "a5fc6c16ccb0a2050ea714f93f1ad79a8d1f9689",
      "parents": [
        "0b6cb26c6686f1f24607c41f0a6d21ce54191710"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:08 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:16 2008 +0200"
      },
      "message": "sg: remove unnecessary blk_rq_unmap_user\n\nblk_rq_unmap_user in sg_finish_rem_req can take care of all the cases.\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": "0b6cb26c6686f1f24607c41f0a6d21ce54191710",
      "tree": "9b941224d5d2782e484c00e27e74aa2c2436e928",
      "parents": [
        "c3919af2354fff673026dcbeac6f009d2ce5ceee"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:07 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:15 2008 +0200"
      },
      "message": "sg: remove sg_read_xfer\n\nsg_read_xfer was used to copy data to user space for READ\ncommands. blk_rq_unmap_user does the job so sg_read_xfer does nothing\nuseful.\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": "c3919af2354fff673026dcbeac6f009d2ce5ceee",
      "tree": "8504a35a3a247ec2a40578754aff2f3128294749",
      "parents": [
        "626710c9d665ff381c7ec666b6a023f064ca5fef"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:06 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove sg_write_xfer\n\nsg_write_xfer was used to copy data from user space for WRITE\ncommands. blk_rq_map_user_iov and blk_rq_map_user do the job so\nsg_write_xfer does nothing useful.\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": "626710c9d665ff381c7ec666b6a023f064ca5fef",
      "tree": "011b7b58f3a5868439eab36fd3b3e90952ccbef0",
      "parents": [
        "44c7b0eaa041007066e30ab4869d5bbf8dad5989"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: incorporate sg_build_direct into sg_start_req\n\nCalling blk_rq_map_user() at a single place is better than at\ndifferent two places. It makes the code more understandable.\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": "44c7b0eaa041007066e30ab4869d5bbf8dad5989",
      "tree": "4c127ab80d271c86c38ea3a382667e88f00b83ca",
      "parents": [
        "fd1c1de0766844af4cfc39298e109ad273e72a9e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:04 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove __sg_start_req\n\n__sg_start_req() was used temporarily to call blk_get_request() during\nconverting sg to use the block layer.\n\nNow sg always calls blk_get_request() so we can move blk_get_request()\nto sg_start_req(). We don\u0027t need __sg_start_req anymore.\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": "fd1c1de0766844af4cfc39298e109ad273e72a9e",
      "tree": "ae4d03b3898a2ea65f99868660993b28b64a1542",
      "parents": [
        "7e56cb0f7e7a132803ffefa0a5a15fb2079afaf1"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:03 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove b_malloc_len in sg_scatter_hold struct\n\nIt\u0027s not used for anything useful after the block layer conversion.\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": "7e56cb0f7e7a132803ffefa0a5a15fb2079afaf1",
      "tree": "3747a89cca01a9ed95345981a194ee8802972df1",
      "parents": [
        "a91a3a20e06621b9931793888583efe37db4e4e8"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:02 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove SG_ALLOW_DIO_CODE define\n\nsg had lots of the own functions for the direct IO but now sg uses the\nblock layer functions for it. There are only five lines for the direct\nIO. SG_ALLOW_DIO_CODE define was used to compile out the direct IO\ncode but we don\u0027t need the define. If someone wants to remove the\ndirect IO code, he can do easily without the define.\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": "a91a3a20e06621b9931793888583efe37db4e4e8",
      "tree": "af515f0e87c438218e224e959692dbe3879248fb",
      "parents": [
        "224cb3e981f1b2f9f93dbd49eaef505d17d894c2"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:01 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: rename sg_cmd_done sg_rq_end_io\n\nold sg_rq_end_io() was used to wrap sg_cmd_done during converting sg\nto use the block layer (in order to cover the difference\nscsi_execute_async and blk_execute_rq_nowait). Now we don\u0027t need it so\nlet\u0027s remove it.\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": "224cb3e981f1b2f9f93dbd49eaef505d17d894c2",
      "tree": "41f2201e228a1cdb46430779deeaa474cedab7ed",
      "parents": [
        "11914a53d2ec2974a565311af327b8983d8c820d"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Fri Aug 29 09:36:09 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "dm: Call blk_abort_queue on failed paths\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "11914a53d2ec2974a565311af327b8983d8c820d",
      "tree": "72713d2661ed56fa5d9e29203541bad32c88a3ba",
      "parents": [
        "242f9dcb8ba6f68fcd217a119a7648a4f69290e9"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Sat Sep 13 20:31:27 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "block: Add interface to abort queued requests\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "242f9dcb8ba6f68fcd217a119a7648a4f69290e9",
      "tree": "1bfe245ffbc50d204d76665cd8f90d85100f86a1",
      "parents": [
        "608aeef17a91747d6303de4df5e2c2e6899a95e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Sep 14 05:55:09 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "block: unify request timeout handling\n\nRight now SCSI and others do their own command timeout handling.\nMove those bits to the block layer.\n\nInstead of having a timer per command, we try to be a bit more clever\nand simply have one per-queue. This avoids the overhead of having to\ntear down and setup a timer for each command, so it will result in a lot\nless timer fiddling.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "608aeef17a91747d6303de4df5e2c2e6899a95e8",
      "tree": "deafb5e779f8ed43ecfd5396681cc9b18b3223c7",
      "parents": [
        "56ade44b46780fa291fa68b824f1dafdcb11b0ca"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew.patterson@hp.com",
        "time": "Thu Sep 04 14:27:45 2008 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "Call flush_disk() after detecting an online resize.\n\nWe call flush_disk() to make sure the buffer cache for the disk is\nflushed after a disk resize. There are two resize cases, growing and\nshrinking. Given that users can shrink/then grow a disk before\nrevalidate_disk() is called, we treat the grow case identically to\nshrinking. We need to flush the buffer cache after an online shrink\nbecause, as James Bottomley puts it,\n\n     The two use cases for shrinking I can see are\n\n     1. planned: the fs is already shrunk to within the new boundaries\n        and all data is relocated, so invalidate is fine (any dirty\n        buffers that might exist in the shrunk region are there only\n        because they were relocated but not yet written to their\n        original location).\n     2. unplanned:  In this case, the fs is probably toast, so whether\n        we invalidate or not isn\u0027t going to make a whole lot of\n        difference; it\u0027s still going to try to read or write from\n        sectors beyond the new size and get I/O errors.\n\nImmediately invalidating shrunk disks will cause errors for outstanding\nI/Os for reads/write beyond the new end of the disk to be generated\nearlier then if we waited for the normal buffer cache operation. It also\nremoves a potential security hole where we might keep old data around\nfrom beyond the end of the shrunk disk if the disk was not invalidated.\n\nSigned-off-by: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "56ade44b46780fa291fa68b824f1dafdcb11b0ca",
      "tree": "2232dc9a9e6b080428e4e6e0a32bcc7c83cc1731",
      "parents": [
        "f98a8cae12f2b2a8f9bfd7a53c990a1a405e880e"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew.patterson@hp.com",
        "time": "Thu Sep 04 14:27:40 2008 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "Added flush_disk to factor out common buffer cache flushing code.\n\nWe need to be able to flush the buffer cache for for more than\njust when a disk is changed, so we factor out common cache flush code\nin check_disk_change() to an internal flush_disk() routine.  This\nroutine will then be used for both disk changes and disk resizes (in a\nlater patch).\n\nInclude the disk name in the text indicating that there are busy\ninodes on the device and increase the KERN severity of the message.\n\nSigned-off-by: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f98a8cae12f2b2a8f9bfd7a53c990a1a405e880e",
      "tree": "3fcfd762a5841b8cbc5ab0987da8da3ee37a9201",
      "parents": [
        "9bc3ffbfbdf71fefda8a261ef8d6fdc388a29b42"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew.patterson@hp.com",
        "time": "Thu Sep 04 14:27:35 2008 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "SCSI sd driver calls revalidate_disk wrapper.\n\nModify the SCSI disk driver to call the revalidate_disk()\nwrapper. This allows us to do some housekeeping such as accounting for\na disk being resized online. The wrapper will call\nsd_revalidate_disk() at the appropriate time.\n\nSigned-off-by: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9bc3ffbfbdf71fefda8a261ef8d6fdc388a29b42",
      "tree": "c6f4ffdb3351a379fc5aee8fd6f91ba6caee83d0",
      "parents": [
        "c3279d1454cdfed02a557d789d8a6d08ab4cbe70"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew.patterson@hp.com",
        "time": "Thu Sep 04 14:27:30 2008 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:12 2008 +0200"
      },
      "message": "Check for device resize when rescanning partitions\n\nCheck for device resize in the rescan_partitions() routine. If the device\nhas been resized, the bdev size is set to match. The rescan_partitions()\nroutine is called when opening the device and when calling the\nBLKRRPART ioctl.\n\nSigned-off-by: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c3279d1454cdfed02a557d789d8a6d08ab4cbe70",
      "tree": "2591c7c0886f9b6b63aa40e3ef3caa984370c38b",
      "parents": [
        "0c002c2f74e10baa9021d3ecc50585c6eafea568"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew.patterson@hp.com",
        "time": "Thu Sep 04 14:27:25 2008 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:12 2008 +0200"
      },
      "message": "Adjust block device size after an online resize of a disk.\n\nThe revalidate_disk routine now checks if a disk has been resized by\ncomparing the gendisk capacity to the bdev inode size.  If they are\ndifferent (usually because the disk has been resized underneath the kernel)\nthe bdev inode size is adjusted to match the capacity.\n\nSigned-off-by: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0c002c2f74e10baa9021d3ecc50585c6eafea568",
      "tree": "c7d29fe0968b852f798f78bbd9231df155c56180",
      "parents": [
        "243294dae09c909c0442c8f04d470b69c3c19d6e"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew.patterson@hp.com",
        "time": "Thu Sep 04 14:27:20 2008 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:12 2008 +0200"
      },
      "message": "Wrapper for lower-level revalidate_disk routines.\n\nThis is a wrapper for the lower-level revalidate_disk call-backs such\nas sd_revalidate_disk(). It allows us to perform pre and post\noperations when calling them.\n\nWe will use this wrapper in a later patch to adjust block device sizes\nafter an online resize (a _post_ operation).\n\nSigned-off-by: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "243294dae09c909c0442c8f04d470b69c3c19d6e",
      "tree": "b6178beadd19247b81d2b09e063e856943c83177",
      "parents": [
        "fad7f01e61bf737fe8a3740d803f000db57ecac6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Sep 04 09:17:31 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:12 2008 +0200"
      },
      "message": "block: fix duplicate headers for /proc/partitions\n\nseqf can be started multiple times for a read and the header should be\nprinted only for the initial one.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fad7f01e61bf737fe8a3740d803f000db57ecac6",
      "tree": "d72959e6b5043bf3436f122ebcddb0c8f41d1acf",
      "parents": [
        "818827669d85b84241696ffef2de485db46b0b5e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 16:20:20 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:12 2008 +0200"
      },
      "message": "sg: set dxferp to NULL for READ with the older SG interface\n\nWith the older SG interface, we don\u0027t know a user-space address to\ntrasfer data when executing a SCSI command. So we can\u0027t pass a\nuser-space address to blk_rq_map_user.\n\nThis patch fixes sg to pass a NULL user-space address to\nblk_rq_map_user so that it just sets up a request and bios with page\nframes propely without data transfer.\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": "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": "839e96afba87117befd39cf4e43f156edc8047a7",
      "tree": "ae091a3a8ed386e080cd18569abc4335c1adde84",
      "parents": [
        "55dc7db70a73a3809a2334063c9b5b0d8ccebdaa"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 02 09:25:21 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "block: update comment on end_request()\n\nIt refers to functions that no longer exist after the IO completion\nchanges.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "55dc7db70a73a3809a2334063c9b5b0d8ccebdaa",
      "tree": "e0e52ad2a0e6d3142945346f5acd7979c2b10e8d",
      "parents": [
        "2bbedcb4c1abac498f18e5770d62ae66ff235ada"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Sep 01 13:44:35 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "init: DEBUG_BLOCK_EXT_DEVT requires explicit root\u003d param\n\nDEBUG_BLOCK_EXT_DEVT shuffles SCSI and IDE device numbers and root\ndevice number set using rdev become meaningless.  Root devices should\nbe explicitly specified using textual names.  Warn about it if root\ncan\u0027t be found and DEBUG_BLOCK_EXT_DEVT is enabled.  Also, add warning\nto the help text.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2bbedcb4c1abac498f18e5770d62ae66ff235ada",
      "tree": "2609360651b9a0d137c5c564a971152c90d52001",
      "parents": [
        "759f8ca3048f7438aa3129268d7252552505d662"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 29 11:41:51 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "block: don\u0027t test for partition size in bdget_disk() and blk_lookup_devt()\n\nbdget_disk() and blk_lookup_devt() never cared whether the specified\npartition (or disk) is zero sized or not.  I got confused while\nconverting those not to depend on consecutive minor numbers in commit\n5a6411b1178baf534aa9138052864dfa89d3eada and later when dev0 was added\nit broke callers which expected to get valid return for zero sized\ndisk devices.\n\nSo, they never needed nr_sects checks in the first place.  Kill them.\n\nThis problem was spotted and debugged by Bartlmoiej Zolnierkiewicz.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "759f8ca3048f7438aa3129268d7252552505d662",
      "tree": "68ff6d337fbb9fd8fbc2b5f48c993c348df8a60f",
      "parents": [
        "aeb3d3a81e81c6323a17fe914e91eb228b3f1aa1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 29 09:06:29 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "Change default value of CONFIG_DEBUG_BLOCK_EXT_DEVT to \u0027n\u0027\n\nIt\u0027s a debug option that you would explicitly enable to test this\nfeature, we should default it to \u0027n\u0027 to prevent accidental surprises\nfor now.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "aeb3d3a81e81c6323a17fe914e91eb228b3f1aa1",
      "tree": "9cacfa989eaad1611f61e5707fd432e7f1fde685",
      "parents": [
        "01cfcddd98f09e05a2e36031654ed46643b76f23"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Aug 28 09:27:42 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "block: kmalloc args reversed, small function definition fixes\n\nNoticed by sparse:\nblock/blk-softirq.c:156:12: warning: symbol \u0027blk_softirq_init\u0027 was not declared. Should it be static?\nblock/genhd.c:583:28: warning: function \u0027bdget_disk\u0027 with external linkage has definition\nblock/genhd.c:659:17: warning: incorrect type in argument 1 (different base types)\nblock/genhd.c:659:17:    expected unsigned int [unsigned] [usertype] size\nblock/genhd.c:659:17:    got restricted gfp_t\nblock/genhd.c:659:29: warning: incorrect type in argument 2 (different base types)\nblock/genhd.c:659:29:    expected restricted gfp_t [usertype] flags\nblock/genhd.c:659:29:    got unsigned int\nblock: kmalloc args reversed\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "01cfcddd98f09e05a2e36031654ed46643b76f23",
      "tree": "58bfbd3d70363e5a8d1c5822d27b29e2be93ad40",
      "parents": [
        "879040742cf09f2360a9ac41846288707e4e567c"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 15:05:59 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "sg: use blk_rq_aligned helper function\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "879040742cf09f2360a9ac41846288707e4e567c",
      "tree": "7768750efd0d8ef28a183f8cd781b0c878212795",
      "parents": [
        "4d8ab62e087d9300883b82c2662e73e6eef803a3"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 15:05:58 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "block: add blk_rq_aligned helper function\n\nThis adds blk_rq_aligned helper function to see if alignment and\npadding requirement is satisfied for DMA transfer. This also converts\nblk_rq_map_kern and __blk_rq_map_user to use the helper function.\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": "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": "10db10d144c0248f285242f79daf6b9de6b00a62",
      "tree": "315806c8e09f6007bdc0c1dfeea1313f15815bfd",
      "parents": [
        "6e5a30cba5e7c03b2cd564e968f1dd667a0f7c42"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Aug 29 12:32:18 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "sg: convert the indirect IO path to use the block layer\n\nThis patch converts the indirect IO path (including mmap IO and old\nstruct sg_header) to use the block layer functions (blk_get_request,\nblk_execute_rq_nowait, blk_rq_map_user, etc) instead of\nscsi_execute_async().\n\n[Jens: fixed compile error with SCSI logging enabled]\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": "6e5a30cba5e7c03b2cd564e968f1dd667a0f7c42",
      "tree": "4a48fa4edc2a285a860b6f6771ae732c036143a5",
      "parents": [
        "10865dfa34e7552c4c64606edcdf1e21a110c985"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 16:17:08 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "sg: convert the direct IO path to use the block layer\n\nThis patch converts the direct IO path (SG_FLAG_DIRECT_IO) to use the\nblock layer functions (blk_get_request, blk_execute_rq_nowait,\nblk_rq_map_user, etc) instead of scsi_execute_async().\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": "10865dfa34e7552c4c64606edcdf1e21a110c985",
      "tree": "fe39b3528b667b3a0690246e7c05048dfcf8fd09",
      "parents": [
        "152e283fdfea0cd11e297d982378b55937842dde"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 16:17:07 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "sg: convert the non-data path to use the block layer\n\nThis patch converts the non data path to use the block layer functions\n(blk_get_request, blk_execute_rq_nowait, etc) instead of uses\nscsi_execute_async().\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": "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": "45333d5a31296d0af886d94f1d08f128231cab8e",
      "tree": "ea5b1afb70fb17935128bac6df588e6b5ae764b4",
      "parents": [
        "605401618ce4409045bc4db86e88d4b38f2ad585"
      ],
      "author": {
        "name": "Aaron Carroll",
        "email": "aaronc@gelato.unsw.edu.au",
        "time": "Tue Aug 26 15:52:36 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "cfq-iosched: fix queue depth detection\n\nCFQ\u0027s detection of queueing devices assumes a non-queuing device and detects\nif the queue depth reaches a certain threshold.  Under some workloads (e.g.\nsynchronous reads), CFQ effectively forces a unit queue depth, thus defeating\nthe detection logic.  This leads to poor performance on queuing hardware,\nsince the idle window remains enabled.\n\nThis patch inverts the sense of the logic: assume a queuing-capable device,\nand detect if the depth does not exceed the threshold.\n\nSigned-off-by: Aaron Carroll \u003caaronc@gelato.unsw.edu.au\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "605401618ce4409045bc4db86e88d4b38f2ad585",
      "tree": "1abcf85f04c407c5f18268c1e84acb99244a7e38",
      "parents": [
        "ab780f1ece0dc8d5e8e8e85435acc5e4747ccda3"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Aug 26 13:34:34 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: don\u0027t use bio_has_data() in the completion path\n\nWe should just check for rq-\u003ebio, as that is really the information\nwe are looking for. Even if the bio attached doesn\u0027t carry data,\nwe still need to do IO post processing on it.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ab780f1ece0dc8d5e8e8e85435acc5e4747ccda3",
      "tree": "4085b6c929a44de229eb5ef13fa2079211ea5512",
      "parents": [
        "c7c22e4d5c1fdebfac4dba76de7d0338c2b0d832"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Aug 26 10:25:02 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: inherit CPU completion on bio-\u003erq and rq-\u003erq merges\n\nSomewhat incomplete, as we do allow merges of requests and bios\nthat have different completion CPUs given. This is done on the\nassumption that a larger IO is still more beneficial than CPU\nlocality.\n\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": "18887ad910e56066233a07fd3cfb2fa11338b782",
      "tree": "a8d14ba47f15c58e36b26c82fa4ae4ad7526c80a",
      "parents": [
        "b646fc59b332ef307895558c9cd1359dc2d25813"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jul 28 13:08:45 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: make kblockd_schedule_work() take the queue as parameter\n\nPreparatory patch for checking queuing affinity.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b646fc59b332ef307895558c9cd1359dc2d25813",
      "tree": "47d703053144c099abee8326e52ed0d3b05920c6",
      "parents": [
        "0835da67c11e879ed5dc23160934d8970470a2ce"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jul 28 13:06:00 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: split softirq handling into blk-softirq.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0835da67c11e879ed5dc23160934d8970470a2ce",
      "tree": "8a09f5592d9573955e118240848174b5db491aab",
      "parents": [
        "3e1a7ff8a0a7b948f2684930166954f9e8e776fe"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Aug 26 09:15:47 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: use linux/uaccess.h in elevator.c instead of asm variant\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3e1a7ff8a0a7b948f2684930166954f9e8e776fe",
      "tree": "0a8642f5cdbc6ddfdd66dc7241c915e57b3cb7ff",
      "parents": [
        "689d6fac40b41c7bf154f362deaf442548e4dc81"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:17 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: allow disk to have extended device number\n\nNow that disk and partition handlings are mostly unified, it\u0027s easy to\nallow disk to have extended device number.  This patch makes\nadd_disk() use extended device number if disk-\u003eminors is zero.  Both\nsd and ide-disk are updated to use this.\n\n* sd_format_disk_name() is implemented which can generically determine\n  the drive name.  This removes disk number restriction stemming from\n  limited device names.\n\n* If sd index goes over SD_MAX_DISKS (which can be increased now BTW),\n  sd simply doesn\u0027t initialize minors letting block layer choose\n  extended device number.\n\n* If CONFIG_DEBUG_EXT_DEVT is set, both sd and ide-disk always set\n  minors to 0 and use extended device numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "689d6fac40b41c7bf154f362deaf442548e4dc81",
      "tree": "5989dc5767f657272194ee8c7d69c6db1e62dab7",
      "parents": [
        "540eed5637b766bb1e881ef744c42617760b4815"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:16 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: replace @ext_minors with GENHD_FL_EXT_DEVT\n\nWith previous changes, it\u0027s meaningless to limit the number of\npartitions.  Replace @ext_minors with GENHD_FL_EXT_DEVT such that\nsetting the flag allows the disk to have maximum number of allowed\npartitions (only limited by the number of entries in parsed_partitions\nas determined by MAX_PART constant).\n\nThis kills not-too-pretty alloc_disk_ext[_node]() functions and makes\n@minors parameter to alloc_disk[_node]() unnecessary.  The parameter\nis left alone to avoid disturbing the users.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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": "074a7aca7afa6f230104e8e65eba3420263714a5",
      "tree": "f418313e45bd55be8156c8a3e8f9a216cf63058d",
      "parents": [
        "eddb2e26b5ee3c5da68ba4bf1921ba20e2097bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:14 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: move stats from disk to part0\n\nMove stats related fields - stamp, in_flight, dkstats - from disk to\npart0 and unify stat handling such that...\n\n* part_stat_*() now updates part0 together if the specified partition\n  is not part0.  ie. part_stat_*() are now essentially all_stat_*().\n\n* {disk|all}_stat_*() are gone.\n\n* part_round_stats() is updated similary.  It handles part0 stats\n  automatically and disk_round_stats() is killed.\n\n* part_{inc|dec}_in_fligh() is implemented which automatically updates\n  part0 stats for parts other than part0.\n\n* disk_map_sector_rcu() is updated to return part0 if no part matches.\n  Combined with the above changes, this makes NULL special case\n  handling in callers unnecessary.\n\n* Separate stats show code paths for disk are collapsed into part\n  stats show code paths.\n\n* Rename disk_stat_lock/unlock() to part_stat_lock/unlock()\n\nWhile at it, reposition stat handling macros a bit and add missing\nparentheses around macro parameters.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "eddb2e26b5ee3c5da68ba4bf1921ba20e2097bff",
      "tree": "7a24f3f3cb577f344491dc57ea441060fac9d9a9",
      "parents": [
        "0762b8bde9729f10f8e6249809660ff2ec3ad735"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:13 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: kill GENHD_FL_FAIL and use part0-\u003emake_it_fail\n\nGENHD_FL_FAIL for disk is what make_it_fail is for parts.  Kill it and\nuse part0-\u003emake_it_fail.  Sysfs node handling is unified too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0762b8bde9729f10f8e6249809660ff2ec3ad735",
      "tree": "12aa94ef16b840f713f833c712d335646c816dc1",
      "parents": [
        "4c46501d1659475dc6c89554af6ce7fe6ecf615c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:12 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: always set bdev-\u003ebd_part\n\nTill now, bdev-\u003ebd_part is set only if the bdev was for parts other\nthan part0.  This patch makes bdev-\u003ebd_part always set so that code\npaths don\u0027t have to differenciate common handling.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4c46501d1659475dc6c89554af6ce7fe6ecf615c",
      "tree": "03bfdf77e2d20c3190ba62532c783ab7f6a2640d",
      "parents": [
        "b7db9956e57c8151b930d5e5fe5c766e6aad3ff7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:11 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: move holder_dir from disk to part0\n\nMove disk-\u003eholder_dir to part0-\u003eholder_dir.  Kill now mostly\nsuperflous bdev_get_holder().\n\nWhile at it, kill superflous kobject_get/put() around holder_dir,\nslave_dir and cmd_filter creation and collapse\ndisk_sysfs_add_subdirs() into register_disk().  These serve no purpose\nbut obfuscating the code.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b7db9956e57c8151b930d5e5fe5c766e6aad3ff7",
      "tree": "d663a8687fff481abb1498c2ea0eac01ef81cb26",
      "parents": [
        "e56105214943ce5f0901d20e972a7cfd0d1d0656"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:10 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: move policy from disk to part0\n\nMove disk-\u003epolicy to part0-\u003epolicy.  Implement and use get_disk_ro().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e56105214943ce5f0901d20e972a7cfd0d1d0656",
      "tree": "e7b5abffa47f5bfc664fdbb27025872827514089",
      "parents": [
        "548b10eb2959c96cef6fc29fc96e0931eeb53bc5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:09 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: unify sysfs size node handling\n\nNow that capacity and __dev are moved to part0, part0 and others can\nshare the same method.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "548b10eb2959c96cef6fc29fc96e0931eeb53bc5",
      "tree": "7166bc04336b80a69f87a9add097919b418f4f43",
      "parents": [
        "80795aefb76d10c5d698e60c7e7750b5330787da"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 29 09:01:47 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: move __dev from disk to part0\n\nMove disk-\u003e__dev to part0-\u003e__dev.  This simplifies bdget_disk() and\nlookup_devt() and allows common sysfs attributes to be unified.\npart_to_disk() is updated to handle part0 -\u003e disk.\n\nUpdated to include a fix from Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e,\nhe writes:\n\n\"part0 is a \"special\" partition and doesn\u0027t need to have capacity set - this\nfixes regression caused by \"block: move __dev from disk to part0\" commit.\"\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "80795aefb76d10c5d698e60c7e7750b5330787da",
      "tree": "f22a55483cb2fe77580ee1507c1124bc73b93c3d",
      "parents": [
        "b5d0b9df0ba5d9a044f3a21e7544f53d90bd1465"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:07 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: move capacity from disk to part0\n\nMove disk-\u003ecapacity to part0-\u003enr_sects and convert all users who\ndirectly accessed the field to use {get|set}_capacity().  This is done\nearly to allow the __dev field to be moved.\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": "ed9e1982347b36573cd622ee5f4e2a7ccd79b3fd",
      "tree": "79d834094d655ec97cfc0a382a9207ebc8e711a5",
      "parents": [
        "870d6656126add8e383645732b03df2b7ccd4f94"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:07 2008 +0200"
      },
      "message": "block: implement and use {disk|part}_to_dev()\n\nImplement {disk|part}_to_dev() and use them to access generic device\ninstead of directly dereferencing {disk|part}-\u003edev.  To make sure no\nuser is left behind, rename generic devices fields to __dev.\n\nThis is in preparation of unifying partition 0 handling with other\npartitions.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "870d6656126add8e383645732b03df2b7ccd4f94",
      "tree": "9c33dd91350ea163b160d9f5cb40d913c5caf268",
      "parents": [
        "f615b48cc7df7cac3865ec76ac1a5bb04d3e07f4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:25 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: implement CONFIG_DEBUG_BLOCK_EXT_DEVT\n\nExtended devt introduces non-contiguos device numbers.  This patch\nimplements a debug option which forces most devt allocations to be\nfrom the extended area and spreads them out.  This is enabled by\ndefault if DEBUG_KERNEL is set and achieves...\n\n1. Detects code paths in kernel or userland which expect predetermined\n   consecutive device numbers.\n\n2. When something goes wrong, avoid corruption as adding to the minor\n   of earlier partition won\u0027t lead to the wrong but valid device.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f615b48cc7df7cac3865ec76ac1a5bb04d3e07f4",
      "tree": "a61ba32641118296ecc942814e03b4b0ababfa63",
      "parents": [
        "1f0142905d4812966831613847db38a66da29eb8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:24 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "sd/ide-disk: apply extended minors to sd and ide\n\nUpdate sd and ide-disk such that they can take advantage of extended\nminors.\n\nide-disk already has 64 minors per device and currently doesn\u0027t use\nextended minors although after this patch it can be turned on by\nsimply tweaking constants.\n\nsd only had 16 minors per device causing problems on certain peculiar\nconfigurations.  This patch lifts the restriction and enables it to\nuse upto 64 minors.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1f0142905d4812966831613847db38a66da29eb8",
      "tree": "0db3c802fccfa7b2b8b74bfd0078258e8fb8e22d",
      "parents": [
        "bcce3de1be61e424deef35d1e86e86a35c4b6e65"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:23 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: adjust formatting for large minors and add ext_range sysfs attr\n\nWith extended minors and the soon-to-follow debug feature, large minor\nnumbers for block devices will be common.  This patch does the\nfollowings to make printouts pretty.\n\n* Adapt print formats such that large minors don\u0027t break the\n  formatting.\n\n* For extended MAJ:MIN, %02x%02x for MAJ:MIN used in\n  printk_all_partitions() doesn\u0027t cut it anymore.  Update it such that\n  %03x:%05x is used if either MAJ or MIN doesn\u0027t fit in %02x.\n\n* Implement ext_range sysfs attribute which shows total minors the\n  device can use including both conventional minor space and the\n  extended one.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bcce3de1be61e424deef35d1e86e86a35c4b6e65",
      "tree": "cfdefb52bc37c61dfac160951a9beb86d5cd9ba0",
      "parents": [
        "c9959059161ddd7bf4670cf47367033d6b2f79c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:22 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: implement extended dev numbers\n\nImplement extended device numbers.  A block driver can tell block\nlayer that it wants to use extended device numbers.  After the usual\nminor space is used up, block layer automatically allocates devt\u0027s\nfrom EXT_BLOCK_MAJOR.\n\nCurrently only one major number is allocated for this but as the\nallocation is strictly on-demand, ~1mil minor space under it should\nsuffice unless the system actually has more than ~1mil partitions and\nif that ever happens adding more majors to the extended devt area is\neasy.\n\nDue to internal implementation issues, the first partition can\u0027t be\nallocated on the extended area.  In other words, genhd-\u003eminors should\nat least be 1.  This limitation will be lifted by later changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c9959059161ddd7bf4670cf47367033d6b2f79c4",
      "tree": "6454db55f8e34361fe472358e10e0c5cfac1e366",
      "parents": [
        "e71bf0d0ee89e51b92776391c5634938236977d5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:21 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: fix diskstats access\n\nThere are two variants of stat functions - ones prefixed with double\nunderbars which don\u0027t care about preemption and ones without which\ndisable preemption before manipulating per-cpu counters.  It\u0027s unclear\nwhether the underbarred ones assume that preemtion is disabled on\nentry as some callers don\u0027t do that.\n\nThis patch unifies diskstats access by implementing disk_stat_lock()\nand disk_stat_unlock() which take care of both RCU (for partition\naccess) and preemption (for per-cpu counter access).  diskstats access\nshould always be enclosed between the two functions.  As such, there\u0027s\nno need for the versions which disables preemption.  They\u0027re removed\nand double underbars ones are renamed to drop the underbars.  As an\nextra argument is added, there\u0027s no danger of using the old version\nunconverted.\n\ndisk_stat_lock() uses get_cpu() and returns the cpu index and all\ndiskstat functions which access per-cpu counters now has @cpu\nargument to help RT.\n\nThis change adds RCU or preemption operations at some places but also\ncollapses several preemption ops into one at others.  Overall, the\nperformance difference should be negligible as all involved ops are\nvery lightweight per-cpu ones.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.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": "310a2c1012934f590192377f65940cad4aa72b15",
      "tree": "ed30346abf07c5a7e94719f567368d5642af1f95",
      "parents": [
        "88e341261ca4d39eec21b212961c77eff51105f7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:17 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "block: misc updates\n\nThis patch makes the following misc updates in preparation for\ndisk-\u003epart dereference fix and extended block devt support.\n\n* implment part_to_disk()\n\n* fix comment about gendisk-\u003epart indexing\n\n* rename get_part() to disk_map_sector()\n\n* don\u0027t use n which is always zero while printing disk information in\n  diskstats_show()\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": "def4e38ddda9bef20b69bfa939195c2f79da7979",
      "tree": "51535a76dee0b21857d2c64da22a0406c0dc7357",
      "parents": [
        "2ac3cee5298a247b2774f3319b28a05f588c3f0e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 08:57:12 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "block: use class_dev_iterator instead of class_for_each_device()\n\nRecent block_class iteration updates 5c6f35c5..27f3025 converted all\nclass device iteration to class_for_each_device() and\nclass_find_device(), which are correct but pain in the ass to use.\nThis pach converts them to newly introduced class_dev_iterator so that\nthey can use more natural control structures instead of separate\ncallbacks and struct to pass parameters to them.\n\nThis results in smaller and easier code.\n\nThis patch also restores the original behavior of not printing header\nin /proc/partitions if there\u0027s no partition to print.  This is trivial\nbut still user-visible behavior.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2ac3cee5298a247b2774f3319b28a05f588c3f0e",
      "tree": "e297bbd502f1a8a52436358c5184f7de1cb43f56",
      "parents": [
        "ac65ece4eee10b03ac29ee925cadc179dc810bab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 08:53:37 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "block: don\u0027t grab block_class_lock unnecessarily\n\nblock_class_lock protects major_names array and bdev_map and doesn\u0027t\nhave anything to do with block class devices.  Don\u0027t grab them while\niterating over block class devices.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ac65ece4eee10b03ac29ee925cadc179dc810bab",
      "tree": "529f3a2c212aaa6aa5010c41aa9ec59bd6635c17",
      "parents": [
        "5a3ceb861663040f9ef0176df4aaa494bba5e352"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:30:12 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "block: fix partition info printouts\n\nRecent block_class iteration updates 5c6f35c5..27f3025 broke partition\ninfo printouts.\n\n* printk_all_partitions(): Partition print out stops when it meets a\n  partition hole.  Partition printing inner loop should continue\n  instead of exiting on empty partition slot.\n\n* /proc/partitions and /proc/diskstats: If all information can\u0027t be\n  read in single read(), the information is truncated.  This is\n  because find_start() doesn\u0027t actually update the counter containing\n  the initial seek.  It runs to the end and ends up always reporting\n  EOF on the second read.\n\nThis patch fixes both problems.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5a3ceb861663040f9ef0176df4aaa494bba5e352",
      "tree": "035472164252c3b54071f044c161b312b6bc8b44",
      "parents": [
        "a1ed5b0cffe4b16a93a6a3390e8cee0fbef94f86"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:50:19 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "driver-core: use klist for class device list and implement iterator\n\nIterating over entries using callback usually isn\u0027t too fun especially\nwhen the entry being iterated over can\u0027t be manipulated freely.  This\npatch converts class-\u003ep-\u003eclass_devices to klist and implements class\ndevice iterator so that the users can freely build their own control\nstructure.  The users are also free to call back into class code\nwithout worrying about locking.\n\nclass_for_each_device() and class_find_device() are converted to use\nthe new iterators, so their users don\u0027t have to worry about locking\nanymore either.\n\nNote: This depends on klist-dont-iterate-over-deleted-entries patch\nbecause class_intf-\u003eadd/remove_dev() depends on proper synchronization\nwith device removal.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a1ed5b0cffe4b16a93a6a3390e8cee0fbef94f86",
      "tree": "1f07794d793124c0ab514378d9179f595769a813",
      "parents": [
        "710027a48ede75428cc68eaa8ae2269b1e356e2c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:50:16 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:04 2008 +0200"
      },
      "message": "klist: don\u0027t iterate over deleted entries\n\nA klist entry is kept on the list till all its current iterations are\nfinished; however, a new iteration after deletion also iterates over\ndeleted entries as long as their reference count stays above zero.\nThis causes problems for cases where there are users which iterate\nover the list while synchronized against list manipulations and\nnatuarally expect already deleted entries to not show up during\niteration.\n\nThis patch implements dead flag which gets set on deletion so that\niteration can skip already deleted entries.  The dead flag piggy backs\non the lowest bit of knode-\u003en_klist and only visible to klist\nimplementation proper.\n\nWhile at it, drop klist_iter-\u003ei_head as it\u0027s redundant and doesn\u0027t\noffer anything in semantics or performance wise as klist_iter-\u003ei_klist\nis dereferenced on every iteration anyway.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "710027a48ede75428cc68eaa8ae2269b1e356e2c",
      "tree": "22cba18860b83b03613bad97c405fb5146a2d686",
      "parents": [
        "5b99c2ffa980528a197f26c7d876cceeccce8dd5"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Aug 19 20:13:11 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b99c2ffa980528a197f26c7d876cceeccce8dd5",
      "tree": "65e3bbbccb3f796f0569c47fcfc00e222cd3066e",
      "parents": [
        "960e739d9e9f1c2346d8bdc65299ee2e1ed42218"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 15 10:56:11 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "block: make bi_phys_segments an unsigned int instead of short\n\nraid5 can overflow with more than 255 stripes, and we can increase it\nto an int for free on both 32 and 64-bit archs due to the padding.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ],
  "next": "960e739d9e9f1c2346d8bdc65299ee2e1ed42218"
}
