)]}'
{
  "log": [
    {
      "commit": "ad7fce93147d32ae53d25d9ea1a8ba31a239deee",
      "tree": "baa8c613c1d34ec247f13b860c3bf7671b07f586",
      "parents": [
        "0c032ab889e7b20b8a5a7d09313e4aca214a15f7"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Wed Oct 01 03:38:39 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "block: Switch blk_integrity_compare from bdev to gendisk\n\nThe DM and MD integrity support now depends on being able to use\ngendisks instead of block_devices when comparing integrity profiles.\nChange function parameters accordingly.\n\nAlso update comparison logic so that two NULL profiles are a valid\nconfiguration.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0c032ab889e7b20b8a5a7d09313e4aca214a15f7",
      "tree": "921d41ff5a31f9b538b43bea6fb56a6e2467530d",
      "parents": [
        "74aa8c2cc010035a7eef2b4ca4d6430e0dae206a"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Wed Oct 01 03:38:38 2008 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:21 2008 +0200"
      },
      "message": "block: Fix double put in blk_integrity_unregister\n\n- kobject_del already puts the parent.\n\n - Set integrity profile to NULL to prevent stale data.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "5df97b91b5d7ed426034fcc84cb6e7cf682b8838",
      "tree": "727b9fb778f72d2b1ff44c007fb5209bacf67f4a",
      "parents": [
        "b8b3e16cfe6435d961f6aaebcfd52a1ff2a988c5"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Aug 15 10:20:02 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "drop vmerge accounting\n\nRemove hw_segments field from struct bio and struct request. Without virtual\nmerge accounting they have no purpose.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b8b3e16cfe6435d961f6aaebcfd52a1ff2a988c5",
      "tree": "5832535c112c0504590256cb8a0bcabc6e282be3",
      "parents": [
        "6a421c1dc94b12923294a359822346f12492de5e"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Aug 15 10:15:19 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "block: drop virtual merging accounting\n\nRemove virtual merge accounting.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4fb72f7646e86874eb2798256eaa6bf3fbe4edcf",
      "tree": "0c32819099dd65494010514ecea4e2c39b372315",
      "parents": [
        "63de428b139d3d31d86ebe25ae97b33f6540fb7e"
      ],
      "author": {
        "name": "Aaron Carroll",
        "email": "aaronc@gelato.unsw.edu.au",
        "time": "Thu Aug 14 18:17:14 2008 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:03 2008 +0200"
      },
      "message": "deadline-iosched: non-functional fixes\n\n* convert goto to simpler while loop;\n * use rq_end_sector() instead of computing manually;\n * fix false comments;\n * remove spurious whitespace;\n * convert rq_rb_root macro to an inline function.\n\nSigned-off-by: Aaron Carroll \u003caaronc@gelato.unsw.edu.au\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "63de428b139d3d31d86ebe25ae97b33f6540fb7e",
      "tree": "def85c8e9990293effe71baf3b0dce648eab516c",
      "parents": [
        "766ca4428d1239a970926856c447310c9c191af2"
      ],
      "author": {
        "name": "Aaron Carroll",
        "email": "aaronc@gelato.unsw.edu.au",
        "time": "Thu Aug 14 18:17:13 2008 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:02 2008 +0200"
      },
      "message": "deadline-iosched: allow non-sequential batching\n\nDeadline currently only batches sector-contiguous requests, so except\nfor a few circumstances (e.g. requests in a single direction), it is\nessentially first come first served.  This is bad for throughput, so\nchange it to CSCAN, which means requests in a batch do not need to be\nsequential and are issued in increasing sector order.\n\nSigned-off-by: Aaron Carroll \u003caaronc@gelato.unsw.edu.au\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e17fc0a1ccf88f6d4dcb363729f3141b0958c325",
      "tree": "0a7c2dc1c3159c2af14d87c67ca83e158b2c78b5",
      "parents": [
        "d30a2605be9d5132d95944916e8f578fcfe4f976"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Aug 09 16:42:20 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:02 2008 +0200"
      },
      "message": "Allow elevators to sort/merge discard requests\n\nBut blkdev_issue_discard() still emits requests which are interpreted as\nsoft barriers, because naïve callers might otherwise issue subsequent\nwrites to those same sectors, which might cross on the queue (if they\u0027re\nreallocated quickly enough).\n\nCallers still _can_ issue non-barrier discard requests, but they have to\ntake care of queue ordering for themselves.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d30a2605be9d5132d95944916e8f578fcfe4f976",
      "tree": "91a8161cb09536ab838ef47fceabb0da0bea9256",
      "parents": [
        "2ebca85abcfcbaaf1c0b242e39fc88ad3da90090"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Aug 11 15:58:42 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:02 2008 +0200"
      },
      "message": "Add BLKDISCARD ioctl to allow userspace to discard sectors\n\nWe may well want mkfs tools to use this to mark the whole device as\nunwanted before they format it, for example.\n\nThe ioctl takes a pair of uint64_ts, which are start offset and length\nin _bytes_. Although at the moment it might make sense for them both to\nbe in 512-byte sectors, I don\u0027t want to limit the ABI to that.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2ebca85abcfcbaaf1c0b242e39fc88ad3da90090",
      "tree": "a8fc6fbc0ba4a258b8252625158e1e30dd255fd5",
      "parents": [
        "35ba8f7083e87602b695d6eaca38a6464d5b74db"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Mon Aug 11 17:07:08 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:02 2008 +0200"
      },
      "message": "Use WRITE_BARRIER in blkdev_issue_flush(), not (1\u003c\u003cBIO_RW_BARRIER)\n\nBarriers should be submitted with the WRITE flag set.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35ba8f7083e87602b695d6eaca38a6464d5b74db",
      "tree": "dd9e515480ec307cf12378f13b01c7922cf3266c",
      "parents": [
        "27b29e86bf3d4b3cf6641a0efd78ed11a9b633b2"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sun Aug 10 12:33:00 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:01 2008 +0200"
      },
      "message": "blktrace: simplify flags handling in __blk_add_trace\n\nLet the compiler see what\u0027s going on, and it can all get a lot simpler.\nOn PPC64 this reduces the size of the code calculating these bits by\nabout 60%. On x86_64 it\u0027s less of a win -- only 40%.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "27b29e86bf3d4b3cf6641a0efd78ed11a9b633b2",
      "tree": "0cfa20e8f07ee9d57e43a5371b4d97eeb8202081",
      "parents": [
        "fdc53971bce56d299cb5f1f06ecbff30b34cbaf2"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sun Aug 10 11:21:57 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:01 2008 +0200"
      },
      "message": "blktrace: support discard requests\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fb2dce862d9f9a68e6b9374579056ec9eca02a63",
      "tree": "888e0fd7248c9329fa1aa3981043a2dc2457d488",
      "parents": [
        "d628eaef310533767ce68664873869c2d7f78f09"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Aug 05 18:01:53 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:01 2008 +0200"
      },
      "message": "Add \u0027discard\u0027 request handling\n\nSome block devices benefit from a hint that they can forget the contents\nof certain sectors. Add basic support for this to the block core, along\nwith a \u0027blkdev_issue_discard()\u0027 helper function which issues such\nrequests.\n\nThe caller doesn\u0027t get to provide an end_io functio, since\nblkdev_issue_discard() will automatically split the request up into\nmultiple bios if appropriate. Neither does the function wait for\ncompletion -- it\u0027s expected that callers won\u0027t care about when, or even\n_if_, the request completes. It\u0027s only a hint to the device anyway. By\ndefinition, the file system doesn\u0027t _care_ about these sectors any more.\n\n[With feedback from OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e and\nJens Axboe \u003cjens.axboe@oracle.com]\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d628eaef310533767ce68664873869c2d7f78f09",
      "tree": "12d6a9e6db000d89deb7ab01d55d2e7b9e6f42c5",
      "parents": [
        "36144077bce9f89763ce994bc631cbd1c9db7785"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Aug 09 16:22:17 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:01 2008 +0200"
      },
      "message": "Fix up comments about matching flags between bio and rq\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "051cc3952a8fb6fa875a4eff68d06cf42207dcf4",
      "tree": "349871365796b43dedf10b5305d3dda98a05f57d",
      "parents": [
        "a9c701e594669dd49fed448c27c64f20cfacc8a7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 08 11:06:45 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:00 2008 +0200"
      },
      "message": "block: use bio_has_data() in the IO completion path\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a9c701e594669dd49fed448c27c64f20cfacc8a7",
      "tree": "f5524a3612ccbfa758a2b9808111297d7ba17698",
      "parents": [
        "7a67f63b3233ff28e753854fe27891c44f8588ae"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 08 11:04:44 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:00 2008 +0200"
      },
      "message": "block: use bio_has_data() to check for data carrying bio\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35e396cd100489dfe8f5a76e3613fb8049ffdff3",
      "tree": "fa300923172de62123a42bbb0d94104ca65cbb78",
      "parents": [
        "69849375d6b13e94d08cdc94b49b11fbab454a0e"
      ],
      "author": {
        "name": "xiphmont@xiph.org",
        "email": "xiphmont@xiph.org",
        "time": "Fri Aug 22 11:12:21 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:00 2008 +0200"
      },
      "message": "SG_IO block filter whitelist missing MMC SET READ AHEAD command\n\nI have another request for the block filter SG_IO command whitelist,\nspecifically the MMC streaming command set SET READ AHEAD command.\nThe command applies only to MMC CDROM/DVDROM drives with the streaming\noptional feature set.  The command is useful to cdparanoia in that it\nallows explicit cache control side effects that are, on many drives,\ncdparanoia\u0027s most efficient way to flush/disable the media cache on\ncdrom drives. I am aware of no reason why it should not be accessible\nfrom usespace.\n\nAlso note that the command is already fully accessible through the\nSCSI-native version of the SG_IO ioctl as well as the traditional SG\ninterface.  The command is only being refused on block devices.  That\nmeans that on a typical stock distro, the command is available through\n/dev/sg* but not /dev/scd* although both are typically available and\naccessible.  Filtering the command is not providing any protection,\nonly a confusing inconsistency.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2dc75d3c3b49c64fd26b4832a7efb75546cb3fc5",
      "tree": "908ae81851ca06d46a680d8e6c33afdfb292c131",
      "parents": [
        "adee14b2e1557d0a8559f29681732d05a89dfc35"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 11 14:20:23 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 11 14:20:23 2008 +0200"
      },
      "message": "block: disable sysfs parts of the disk command filter\n\nWe still have life time issues with the sysfs command filter kobject,\nso disable it for 2.6.27 release. We can revisit this and make it work\nproperly for 2.6.28, for 2.6.27 release it\u0027s too risky.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ddef43a843f620c6742a06633739887a901ec06b",
      "tree": "25eec6c04abf5c7ec3cb9aba2338d249844ffb61",
      "parents": [
        "bb23b431db7405f6d79f989ad0236bf6428ba1cb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Sep 01 08:55:10 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 01 08:55:10 2008 +0200"
      },
      "message": "block: restore original behavior of /proc/partition when there\u0027s no partition\n\n/proc/partitions didn\u0027t use to write out the header if there was no\npartition.  However, recent commit 66c64afe changed the behavior.\nThis is nothing major but there\u0027s no reason to change user visible\nbehavior without a good rationale.  Restore the original behavior.\n\nNote that 2.6.28 has clean up changes scheduled which will replace\nthis rather hacky implementation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bb23b431db7405f6d79f989ad0236bf6428ba1cb",
      "tree": "481c179e97bf72b206e51ef594c7bb3fb32af72f",
      "parents": [
        "24342c34a022ee90839873d91396045e12ef1090"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Aug 29 11:47:07 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 29 11:47:07 2008 +0200"
      },
      "message": "remove blk_register_filter and blk_unregister_filter in gendisk\n\nThis patch remove blk_register_filter and blk_unregister_filter in\ngendisk, and adds them to sd.c, sr.c. and ide-cd.c\n\nThe commit abf5439370491dd6fbb4fe1a7939680d2a9bc9d4 moved cmdfilter\nfrom gendisk to request_queue. It turned out that in some subsystems\nmultiple gendisks share a single request_queue. So we get:\n\nUsing physmap partition information\nCreating 3 MTD partitions on \"physmap-flash\":\n0x00000000-0x01c00000 : \"User FS\"\n0x01c00000-0x01c40000 : \"booter\"\nkobject (8511c410): tried to init an initialized object, something is seriously wrong.\nCall Trace:\n[\u003c8036644c\u003e] dump_stack+0x8/0x34\n[\u003c8021f050\u003e] kobject_init+0x50/0xcc\n[\u003c8021fa18\u003e] kobject_init_and_add+0x24/0x58\n[\u003c8021d20c\u003e] blk_register_filter+0x4c/0x64\n[\u003c8021c194\u003e] add_disk+0x78/0xe0\n[\u003c8027d14c\u003e] add_mtd_blktrans_dev+0x254/0x278\n[\u003c8027c8f0\u003e] blktrans_notify_add+0x40/0x78\n[\u003c80279c00\u003e] add_mtd_device+0xd0/0x150\n[\u003c8027b090\u003e] add_mtd_partitions+0x568/0x5d8\n[\u003c80285458\u003e] physmap_flash_probe+0x2ac/0x334\n[\u003c802644f8\u003e] driver_probe_device+0x12c/0x244\n[\u003c8026465c\u003e] __driver_attach+0x4c/0x84\n[\u003c80263c64\u003e] bus_for_each_dev+0x58/0xac\n[\u003c802633ec\u003e] bus_add_driver+0xc4/0x24c\n[\u003c802648e0\u003e] driver_register+0xcc/0x184\n[\u003c80100460\u003e] _stext+0x60/0x1bc\n\nIn the long term, we need to fix such subsystems but we need a quick\nfix now. This patch add the command filter support to only sd and sr\nthough it might be useful for other SG_IO users (such as cciss).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReported-by: Manuel Lauss \u003cmano@roarinelk.homelinux.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0e3eb45e4fe901d92bf9eae103155a57517af32e",
      "tree": "c46a1a27043c644386f68ddabf6d4322ec6b342b",
      "parents": [
        "aefcc28a3a63ac33a298777aa50ba43641c75241"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Aug 26 09:02:28 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "block: remove unused -\u003ebusy part of the block queue tag map\n\nIt\u0027s not used for anything. On top of that, it\u0027s racy and can thus\ntrigger a faulty BUG_ON() in __blk_free_tags() on queue exit.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a4a778971b9cfcbedb8648ba502d801f7db04c47",
      "tree": "f8e66d6a6a53f0b277009763e703da1b0f9fc58b",
      "parents": [
        "4beab5c623fef4622f9a8593f85760ff10b5a3f7"
      ],
      "author": {
        "name": "Adel Gadllah",
        "email": "adel.gadllah@gmail.com",
        "time": "Sat Aug 16 14:21:06 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "block: clean up cmdfilter sysfs interface\n\nThis patch changes the interface of the cmd filter to use a +/-\nnotation like:\n\necho -- +0x02 +0x03 -0x08\n\nIf neither + or - is given it defaults to + (allow command).\n\nNote: The interface was added in 2.6.17-rc1 and is unused and\nundocumented so far so it\u0027s safe to change it.\n\nReviewed-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nReviewed-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: jens.axboe@oracle.com\nCc: James.Bottomley@hansenpartnership.com\nCc: dan.j.williams@intel.com\nCc: pjones@redhat.com\nCc: viro@zeniv.linux.org.uk\nCc: dougg@torque.net\nSigned-off-by: Adel Gadllah \u003cadel.gadllah@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4beab5c623fef4622f9a8593f85760ff10b5a3f7",
      "tree": "630ad8965703e3ea8296945f4db10c80a348d2b4",
      "parents": [
        "14e507b852e7dcea142b98757181bfa785cb4c05"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 26 18:03:25 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "block: rename blk_scsi_cmd_filter to blk_cmd_filter\n\nTechnically, the cmd_filter would be applied to other protocols though\nit\u0027s unlikely to happen. Putting SCSI stuff to request_queue is kinda\nlayer violation. So let\u0027s rename 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": "abf5439370491dd6fbb4fe1a7939680d2a9bc9d4",
      "tree": "aa3630557fe4a4bc6313617f5770af30eec68515",
      "parents": [
        "1941246dd98089dd637f44d3bd4f6cc1c61aa9e4"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Aug 16 14:10:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "block: move cmdfilter from gendisk to request_queue\n\ncmd_filter works only for the block layer SG_IO with SCSI block\ndevices. It breaks scsi/sg.c, bsg, and the block layer SG_IO with SCSI\ncharacter devices (such as st). We hit a kernel crash with them.\n\nThe problem is that cmd_filter code accesses to gendisk (having struct\nblk_scsi_cmd_filter) via inode-\u003ei_bdev-\u003ebd_disk. It works for only\nSCSI block device files. With character device files, inode-\u003ei_bdev\nleads you to struct cdev. inode-\u003ei_bdev-\u003ebd_disk-\u003eblk_scsi_cmd_filter\nisn\u0027t safe.\n\nSCSI ULDs don\u0027t expose gendisk; they keep it private. bsg needs to be\nindependent on any protocols. We shouldn\u0027t change ULDs to expose their\ngendisk.\n\nThis patch moves struct blk_scsi_cmd_filter from gendisk to\nrequest_queue, a common object, which eveyone can access to.\n\nThe user interface doesn\u0027t change; users can change the filters via\n/sys/block/. gendisk has a pointer to request_queue so the cmd_filter\ncode accesses to struct blk_scsi_cmd_filter.\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": "5c0ef6d0214a08e5c846f4c45228adf135d8d0ef",
      "tree": "f4c5d5991365e19780e3638eb2128c8ebd771e99",
      "parents": [
        "068281d302def5efd96d84a163ba17e85f5ea564"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sat Aug 16 14:30:30 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 21 10:15:38 2008 -0700"
      },
      "message": "block: drop references taken by class_find_device()\n\nOtherwise we leak references, which is not a good thing to do.\n\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "068281d302def5efd96d84a163ba17e85f5ea564",
      "tree": "f8d49d6c1e2043bcf3671504b411770a0c8c349c",
      "parents": [
        "f5a6d958b5d0a10e7e7a9dee1862fb31d08c6d26"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sat Aug 16 14:30:30 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 21 10:15:38 2008 -0700"
      },
      "message": "block: fix partial read() of /proc/{partitions,diskstats}\n\nThe proc files get truncated if they do not fit into the buffer with\na single read(). We need to move the seq_file index from the callback\nof class_find_device() to the caller of class_find_device(), to keep\nits value across multiple invocations of the callback.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f1b134fdf6d36c975b4a66cf952565cd73aebdba",
      "tree": "f7524266c501c9196106cd14222ab5e8c4f3004f",
      "parents": [
        "7274264f60cc0b71389efed286001ff0860c3141",
        "e8bac9e0647dd04c83fd0bfe7cdfe2f6dfb100d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 17:19:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 17:19:18 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:\n  [SCSI] scsi_transport_spi: fix oops in revalidate\n  [SCSI] ses: fix VPD inquiry overrun\n  [SCSI] block: Fix miscalculation of sg_io timeout in CDROM_SEND_PACKET handler.\n  [SCSI] hptiop: add more PCI device IDs\n"
    },
    {
      "commit": "6c5e0c4d518a37e1d5d794c14433e80284415079",
      "tree": "26208a4fe4115a37c000a13d50df8c1a5e393553",
      "parents": [
        "94ad374a0751f40d25e22e036c37f7263569d24c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 01 20:31:32 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Aug 01 20:31:32 2008 +0200"
      },
      "message": "block: add a blk_plug_device_unlocked() that grabs the queue lock\n\nblk_plug_device() must be called with the queue lock held, so callers\noften just grab and release the lock for that purpose. Add a helper\nthat does just that.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ad337591f4fd20de6a0ca03d6715267a5c1d2b16",
      "tree": "7531029530372539d5f9c75543932246a1757089",
      "parents": [
        "dd07428b44944b42f699408fe31af47977f1e733"
      ],
      "author": {
        "name": "Tim Wright",
        "email": "timw@splhi.com",
        "time": "Sun Jul 27 17:50:38 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jul 30 10:18:29 2008 -0500"
      },
      "message": "[SCSI] block: Fix miscalculation of sg_io timeout in CDROM_SEND_PACKET handler.\n\nIt seems cdrwtool in the udftools has been unusable on \"modern\" kernels\nfor some time. A Google search reveals many people with the same issue\nbut no solution (cdrwtool fails to format the disk). After spending some\ntime tracking down the issue, it comes down to the following:\n\nThe udftools still use the older CDROM_SEND_PACKET interface to send\nthings like FORMAT_UNIT through to the drive. They should really be\nupdated, but that\u0027s another story. Since most distros are using libata\nnow, the cd or dvd burner appears as a SCSI device, and we wind up in\nblock/scsi_ioctl.c. Here, the code tries to take the \"struct\ncdrom_generic_command\" and translate it and stuff it into a \"struct\nsg_io_hdr\" structure so it can pass it to the modern sg_io() routine\ninstead. Unfortunately, there is one error, or rather an omission in the\ntranslation. The timeout that is passed in in the \"struct\ncdrom_generic_command\" is in HZ\u003d100 units, and this is modified and\ncorrectly converted to jiffies by use of clock_t_to_jiffies(). However,\na little further down, this cgc.timeout value in jiffies is simply\ncopied into the sg_io_hdr timeout, which should be in milliseconds.\nSince most modern x86 kernels seems to be getting build with HZ\u003d250, the\ntimeout that is passed to sg_io and eventually converted to the\ntimeout_per_command member of the scsi_cmnd structure is now four times\ntoo small. Since cdrwtool tries to set the timeout to one hour for the\nFORMAT_UNIT command, and it takes about 20 minutes to format a 4x CDRW,\nthe SCSI error-handler kicks in after the FORMAT_UNIT completes because\nit took longer than the incorrectly-calculated timeout.\n\n[jejb: fix up whitespace]\nSigned-off-by: Tim Wright \u003ctimw@splhi.com\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "12e0036818eed243c8ed6583ebf98261a2554e12",
      "tree": "2f60ad7d1c869a995faa5b73150b409705d0e8b2",
      "parents": [
        "261c40c1191ad8d7a2e49fa2bb5f6a84e3d44b10"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in block/\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message\nbecomes part of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a76eef9573c93f8f324ebacfd090a3e319a64d59",
      "tree": "078510944393a9f658550476160cdc856dd102a1",
      "parents": [
        "a2e2e3577c3ef2b5dbb866e97e612aae4adfa32f"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:02 2008 -0700"
      },
      "message": "block/blk-map.c: use the new object_is_on_stack() helper\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Thomas Bogendoerfer \u003ctsbogend@alpha.franken.de\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04ebd4aee52b06a2c38127d9208546e5b96f3a19",
      "tree": "25014f06e7bf53ec0b51d717a6a8d0cfb545d985",
      "parents": [
        "d805dda412346225a50af2d399d958a4bc676c38"
      ],
      "author": {
        "name": "Abdel Benamrouche",
        "email": "draconux@gmail.com",
        "time": "Fri Jul 25 01:48:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:44 2008 -0700"
      },
      "message": "block/ioctl.c and fs/partition/check.c: check value returned by add_partition()\n\nNow that add_partition() has been aught to propagate errors, let\u0027s check them.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Abdel Benamrouche \u003cdraconux@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27f302519148f311307637d4c9a6d0fd87d07e4c",
      "tree": "36693a6ec709b037730bb343e72bd8cc508999dc",
      "parents": [
        "66c64afec16a7b46212ecb2fa99998923bbeea3f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 22 17:21:08 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:49 2008 -0700"
      },
      "message": "block: make /proc/partitions and /proc/diskstats use class_find_device()\n\nUse the proper class iterator function instead of mucking around in the\ninternals of the class structures.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "66c64afec16a7b46212ecb2fa99998923bbeea3f",
      "tree": "732d5a400af672568ddceea738d6c509f1f3a0be",
      "parents": [
        "68c4d4a7875c59f2e4b72901ab11ba978e75bde0"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 22 17:21:08 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:49 2008 -0700"
      },
      "message": "block: move header for /proc/partitions to seq_start\n\nThe seq_start call is the better place for the header for the file, that\nway we don\u0027t have to be mucking in the class structure to try to figure\nout if this is the first partition or not.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "68c4d4a7875c59f2e4b72901ab11ba978e75bde0",
      "tree": "92c8024e282b4e5a18b156998c2efa3bc1783e32",
      "parents": [
        "a6e2ba88774bc5870ab3d9664cb86d70415f7402"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 22 17:21:08 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:49 2008 -0700"
      },
      "message": "block: make proc files seq_start use the class_find_device()\n\nUse the proper class iterator function instead of mucking around in the\ninternals of the class structures.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "a6e2ba88774bc5870ab3d9664cb86d70415f7402",
      "tree": "6b2cd66449339a7eadb7edb3e6b211dddaf42a5a",
      "parents": [
        "a142be856f060ae8106512c0e81a8d6f8746ab0b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri May 23 09:44:11 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:49 2008 -0700"
      },
      "message": "block: make /proc/diskstats only build if CONFIG_PROC_FS is enabled\n\nThese functions are only needed if CONFIG_PROC_FS is enabled, so save\nthe space when it is not.\n\nThis also makes it easier for a patch later in this series to work\nproperly if CONFIG_PROC_FS is not enabled.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "a142be856f060ae8106512c0e81a8d6f8746ab0b",
      "tree": "4a90f897816a5b506bf1cced5413bb4a4326a67d",
      "parents": [
        "5c6f35c5ece8f130cd8ec9ba0d71dc146b46a0f1"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 22 17:21:08 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:48 2008 -0700"
      },
      "message": "block: make blk_lookup_devt use the class iterator function\n\nUse the proper class iterator function instead of mucking around in the\ninternals of the class structures.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "5c6f35c5ece8f130cd8ec9ba0d71dc146b46a0f1",
      "tree": "f1e109f09aff9ecfb57b25bc14e5a07e91a2286a",
      "parents": [
        "6ffeea77ff014f1456fcd0564eac84b34e9535ca"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 22 17:21:08 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:48 2008 -0700"
      },
      "message": "block: make printk_partition use the class iterator function\n\nUse the proper class iterator function instead of mucking around in the\ninternals of the class structures.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6ffeea77ff014f1456fcd0564eac84b34e9535ca",
      "tree": "250c2ed78d430db765a73f0432ea7fb5a55dc4cf",
      "parents": [
        "695794ae0c5bdd9bd06e35b118801e2e9be04f9e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 22 17:21:08 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:48 2008 -0700"
      },
      "message": "block: fix compiler warning in genhd.c\n\nWarn if something really bad happens if we can\u0027t create this link.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "f79f060561d04a38d41e773ade9baafce3c96179",
      "tree": "42c8510983db05ba8a68626732940cfa73d6b60f",
      "parents": [
        "09857e35cdccf2457bb03c6d7595adc210a517cc"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 21 12:52:33 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:41 2008 -0700"
      },
      "message": "device create: block: convert device_create to device_create_drvdata\n\ndevice_create() is race-prone, so use the race-free\ndevice_create_drvdata() instead as device_create() is going away.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e105b8bfc769b0545b6f0f395179d1e43cbee822",
      "tree": "23a1f0839547829c4ca6e89cd40adf285eb9feb6",
      "parents": [
        "93ded9b8fd42abe2c3607097963d8de6ad9117eb"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Apr 21 10:51:07 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:40 2008 -0700"
      },
      "message": "sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor\n\nWhy?:\nThere are occasions where userspace would like to access sysfs\nattributes for a device but it may not know how sysfs has named the\ndevice or the path.  For example what is the sysfs path for\n/dev/disk/by-id/ata-ST3160827AS_5MT004CK?  With this change a call to\nstat(2) returns the major:minor then userspace can see that\n/sys/dev/block/8:32 links to /sys/block/sdc.\n\nWhat are the alternatives?:\n1/ Add an ioctl to return the path: Doable, but sysfs is meant to reduce\n   the need to proliferate ioctl interfaces into the kernel, so this\n   seems counter productive.\n\n2/ Use udev to create these symlinks: Also doable, but it adds a\n   udev dependency to utilities that might be running in a limited\n   environment like an initramfs.\n\n3/ Do a full-tree search of sysfs.\n\n[kay.sievers@vrfy.org: fix duplicate registrations]\n[kay.sievers@vrfy.org: cleanup suggestions]\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nReviewed-by: SL Baur \u003csteve@xemacs.org\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Mark Lord \u003clkml@rtr.ca\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "89a93f2f4834f8c126e8d9dd6b368d0b9e21ec3d",
      "tree": "e731456fec0cab1225ad3e806dc8d3efefa0a78b",
      "parents": [
        "260eddf4391f162a69d1d163729249635fa7a78f",
        "fe9233fb6914a0eb20166c967e3020f7f0fba2c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (102 commits)\n  [SCSI] scsi_dh: fix kconfig related build errors\n  [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of\n  [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h\n  [SCSI] make struct scsi_{host,target}_type static\n  [SCSI] fix locking in host use of blk_plug_device()\n  [SCSI] zfcp: Cleanup external header file\n  [SCSI] zfcp: Cleanup code in zfcp_erp.c\n  [SCSI] zfcp: zfcp_fsf cleanup.\n  [SCSI] zfcp: consolidate sysfs things into one file.\n  [SCSI] zfcp: Cleanup of code in zfcp_aux.c\n  [SCSI] zfcp: Cleanup of code in zfcp_scsi.c\n  [SCSI] zfcp: Move status accessors from zfcp to SCSI include file.\n  [SCSI] zfcp: Small QDIO cleanups\n  [SCSI] zfcp: Adapter reopen for large number of unsolicited status\n  [SCSI] zfcp: Fix error checking for ELS ADISC requests\n  [SCSI] zfcp: wait until adapter is finished with ERP during auto-port\n  [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver\n  [SCSI] sg: Add target reset support\n  [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC\n  [SCSI] sd: Move scsi_disk() accessor function to sd.h\n  ...\n"
    },
    {
      "commit": "98339cbd360b77c3167db287fd611468c2c44559",
      "tree": "06779e040c18aa40fc5a6e15b132fa1f70ec45f6",
      "parents": [
        "e4e0fadcd929138aa82130a1c5f22206d86d7bb2",
        "cbbc4e818de4451cdef75a112b7fc8a523d5d2a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 11:15:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 11:15:36 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (80 commits)\n  ide-floppy: fix unfortunate function naming\n  ide-tape: unify idetape_create_read/write_cmd\n  ide: add ide_pc_intr() helper\n  ide-{floppy,scsi}: read Status Register before stopping DMA engine\n  ide-scsi: add more debugging to idescsi_pc_intr()\n  ide-scsi: use pc-\u003ecallback\n  ide-floppy: add more debugging to idefloppy_pc_intr()\n  ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled\n  ide-tape: add ide_tape_io_buffers() helper\n  ide-tape: factor out DSC handling from idetape_pc_intr()\n  ide-{floppy,tape}: move checking of -\u003efailed_pc to -\u003ecallback\n  ide: add ide_issue_pc() helper\n  ide: add PC_FLAG_DRQ_INTERRUPT pc flag\n  ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc()\n  ide: add ide_transfer_pc() helper\n  ide-scsi: set drive-\u003escsi flag for devices handled by the driver\n  ide-{cd,floppy,tape}: remove checking for drive-\u003escsi\n  ide: add PC_FLAG_ZIP_DRIVE pc flag\n  ide-tape: factor out waiting for good ireason from idetape_transfer_pc()\n  ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc()\n  ...\n"
    }
  ],
  "next": "681a561b7ec7fdcd8f35b68e44ac6d6c70aecc04"
}
