)]}'
{
  "log": [
    {
      "commit": "d9a683076412924ca03c8b6cb766964425cf822e",
      "tree": "2557f230c435ada6af84b3628f175cc83eb63c32",
      "parents": [
        "b13345f39dadbabdabaf8819cf6df26913da9e8d"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Sat May 02 10:43:11 2009 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 15 06:44:13 2009 +0200"
      },
      "message": "ide-floppy/ide_floppy_get_flexible_disk_page: use local buffer\n\nThere should be no functional change resulting from this patch.\n\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\n"
    },
    {
      "commit": "b13345f39dadbabdabaf8819cf6df26913da9e8d",
      "tree": "535a81fdf7d71c632fe759c689f4a7d4a5c70399",
      "parents": [
        "5a0e43b5e2ee9a295f864c38f0e853b1a4fc3892"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Sat May 02 10:26:12 2009 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 15 06:44:09 2009 +0200"
      },
      "message": "ide-atapi: add a buffer-arg to ide_queue_pc_tail\n\nThis is in preparation of removing ide_atapi_pc. Expose the buffer as an\nargument to ide_queue_pc_tail with later replacing it with local buffer\nor even kmalloc\u0027ed one if needed due to stack usage constraints.\n\nAlso, add the possibility of passing a NULL-ptr buffer for cmds which\ndon\u0027t transfer data besides the cdb. While at it, switch to local buffer\nin idetape_get_mode_sense_results().\n\nThere should be no functional change resulting from this patch.\n\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\n"
    },
    {
      "commit": "5a0e43b5e2ee9a295f864c38f0e853b1a4fc3892",
      "tree": "9793191360addddb7d240e34d983817fde3ec621",
      "parents": [
        "077e6dba20e74a455a0452379d2a965c7e1b01ad"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 01 23:27:11 2009 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 15 06:44:06 2009 +0200"
      },
      "message": "ide-atapi: add a len-parameter to ide_queue_pc_tail\n\nThis is in preparation for removing ide_atapi_pc.\n\nThere should be no functional change resulting from this patch.\n\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\n"
    },
    {
      "commit": "077e6dba20e74a455a0452379d2a965c7e1b01ad",
      "tree": "66b4a755d6e5941578d5a14b778b0734273343c5",
      "parents": [
        "dfb7e621fa12c0579e88560ab176c5768f9e0bfb"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 01 21:21:02 2009 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 15 06:44:02 2009 +0200"
      },
      "message": "ide-atapi: switch to rq-\u003eresid_len\n\nNow that we have rq-\u003eresid_len, use it to account partial completion\namount during the lifetime of an rq, decrementing it on each successful\ntransfer. As a result, get rid of now unused pc-\u003exferred.\n\nWhile at it, remove noisy debug call in ide_prep_sense.\n\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\n"
    },
    {
      "commit": "dfb7e621fa12c0579e88560ab176c5768f9e0bfb",
      "tree": "9a0fc84735ee3290c366b4244763013ba07bcdd7",
      "parents": [
        "10c0b3437c4dc0d14ac254bbe71e54ea5f238d97"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 01 20:35:21 2009 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 15 06:43:59 2009 +0200"
      },
      "message": "ide-atapi: switch to blk_rq_bytes() on do_request() path\n\nAfter the recent struct request cleanups, blk_rq_bytes() is guaranteed\nto be valid and is the current total length of the rq\u0027s bio. Use that\ninstead of pc-\u003ereq_xfer in the do_request() path after the command has\nbeen queued\n\nThe remaining usage of pc-\u003ereq_xfer now is only until we map the rq to a\nbio.\n\nWhile at it:\n\n- remove local caching of rq completion length in ide_tape_issue_pc()\n\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\n"
    },
    {
      "commit": "10c0b3437c4dc0d14ac254bbe71e54ea5f238d97",
      "tree": "8d40e72ad1c096bcb4d4ca0475f62e9bebbec647",
      "parents": [
        "77f6bf57ba9d2c50173536dbfdacdab27cb867ca"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 01 20:29:53 2009 +0200"
      },
      "committer": {
        "name": "Borislav Petkov",
        "email": "petkovbb@gmail.com",
        "time": "Fri May 15 06:43:45 2009 +0200"
      },
      "message": "ide-tape: fix potential fs requests bug\n\nide-tape had a potential bug for fs requests when preparing the command\npacket: it was writing the transfer length as a number of fixed blocks.\nHowever, the block layer implies 512 byte blocks and ide-tape can have\nother block sizes so account for that too.\n\nide-floppy does this calculation properly with the block size factor\n(floppy-\u003ebs_factor).\n\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\n"
    },
    {
      "commit": "77f6bf57ba9d2c50173536dbfdacdab27cb867ca",
      "tree": "09cfb70eb20081d7fc5af21039e3fda7f0b95f84",
      "parents": [
        "4f23122858a27ba97444b9b37a066d83edebd4c8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu May 14 09:49:44 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 14 09:49:44 2009 +0200"
      },
      "message": "splice: fix error return code\n\nfs/splice.c: In function \u0027default_file_splice_read\u0027:\nfs/splice.c:566: warning: \u0027error\u0027 may be used uninitialized in this function\n\nwhich is sort-of true.  The code will in fact return -ENOMEM instead of the\nkernel_readv() return value.\n\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4f23122858a27ba97444b9b37a066d83edebd4c8",
      "tree": "7ccfea2b6d606318c9812f0dc9c3aa39411ac456",
      "parents": [
        "2b1ccc0ee918a653d0483fdad9dd6112ce8e9043"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 13 08:35:35 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 13 08:35:35 2009 +0200"
      },
      "message": "splice: fix repeated kmap()\u0027s in default_file_splice_read()\n\nWe cannot reliably map more than one page at the time, or we risk\ndeadlocking. Just allocate the pages from low mem instead.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2b1ccc0ee918a653d0483fdad9dd6112ce8e9043",
      "tree": "b640b08b9852955f3399307cbe7d733118c5eca0",
      "parents": [
        "e458824f9d32e9bf7700d1eb0d201749af48eee0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 12 11:11:48 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 12 11:11:48 2009 +0200"
      },
      "message": "splice: fix misleading comment\n\nSplice is tied to pipes by design, it\u0027ll not change. And now that\nthe splice stuff is in splice.h (and note pipe.h), the rest of the comment\nis out-of-date as well.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e458824f9d32e9bf7700d1eb0d201749af48eee0",
      "tree": "6f6d755bb2617b1bf3f567d9cfc8c1752151aea7",
      "parents": [
        "0b0a47f5c4a30b58432e20ae1706a27baea91a88"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 12 08:49:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 12 08:49:32 2009 +0200"
      },
      "message": "scsi: fix resid_len mis-conversion in scsi_end_request()\n\nCommit c3a4d78c580de4edc9ef0f7c59812fb02ceb037f introduced\nrq-\u003edata_len and converted residual count users to it.  While\nconverting, it mistakenly converted scsi_end_request() to finish\nrequests with residual count when it wants to do is fully complete the\nrequest.  Fix it by using blk_end_request_all() instead.\n\nThis bug was spotted by Boaz Harrosh.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSpotted-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0b0a47f5c4a30b58432e20ae1706a27baea91a88",
      "tree": "294de65aae0eaf2b7865ff1db971226c8a77635b",
      "parents": [
        "6818173bd658439b83896a2a7586f64ab51bf29c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu May 07 15:37:37 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 14:13:10 2009 +0200"
      },
      "message": "splice: implement default splice_write method\n\nIf f_op-\u003esplice_write() is not implemented, fall back to a plain write.\nUse vfs_writev() to write from the pipe buffers.\n\nThis will allow splice on all filesystems and file types.  This\nincludes \"direct_io\" files in fuse which bypass the page cache.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6818173bd658439b83896a2a7586f64ab51bf29c",
      "tree": "17d25ee77485af18da1a80cb7f1d8ec581c6abfc",
      "parents": [
        "7c77f0b3f9208c339a4b40737bb2cb0f0319bb8d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu May 07 15:37:36 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 14:13:10 2009 +0200"
      },
      "message": "splice: implement default splice_read method\n\nIf f_op-\u003esplice_read() is not implemented, fall back to a plain read.\nUse vfs_readv() to read into previously allocated pages.\n\nThis will allow splice and functions using splice, such as the loop\ndevice, to work on all filesystems.  This includes \"direct_io\" files\nin fuse which bypass the page cache.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7c77f0b3f9208c339a4b40737bb2cb0f0319bb8d",
      "tree": "cf45bc6afaa4bab28275b5aefc903f0112545965",
      "parents": [
        "b1f744937f1be3e6d3009382a755679133cf782d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu May 07 15:37:35 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 14:13:09 2009 +0200"
      },
      "message": "splice: implement pipe to pipe splicing\n\nAllow splice(2) to work when both the input and the output is a pipe.\n\nBased on the impementation of the tee(2) syscall, but instead of\nduplicating the buffer references move the buffers from the input pipe\nto the output pipe.\n\nMoving the whole buffer only succeeds if the full length of the buffer\nis spliced.  Otherwise duplicate the buffer, just like tee(2), set the\nlength of the output buffer and advance the offset on the input\nbuffer.\n\nSince splice is operating on two pipes, special care needs to be taken\nwith locking to prevent AN ABBA deadlock.  Again this is done\nsimilarly to the tee(2) syscall, first preparing the input and output\npipes so there\u0027s data to consume and space for that data, and then\ndoing the move operation while holding both locks.\n\nIf other processes are doing I/O on the same pipes parallel to the\nsplice, then by the time both inodes are locked there might be no\nbuffers left to move, or no space to move them to.  In this case retry\nthe whole operation, including the preparation phase.  This could lead\nto starvation, but I\u0027m not sure if that\u0027s serious enough to worry\nabout.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b1f744937f1be3e6d3009382a755679133cf782d",
      "tree": "0e90e43589ecfe28199030e8e396c0193199da7e",
      "parents": [
        "e6bb7a96c2c36f20c05ef648f15bd3c2b1834c78"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 11 17:56:09 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 11:06:48 2009 +0200"
      },
      "message": "block: move completion related functions back to blk-core.c\n\nLet\u0027s put the completion related functions back to block/blk-core.c\nwhere they have lived. We can also unexport blk_end_bidi_request() and\n__blk_end_bidi_request(), which nobody uses.\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": "e6bb7a96c2c36f20c05ef648f15bd3c2b1834c78",
      "tree": "774eed3388bb17ce7a5c7813c7dc26c657b4870e",
      "parents": [
        "1822952ba2b9f22f79019d07ebbeca31dc14b718"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 11 17:56:08 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 11:06:47 2009 +0200"
      },
      "message": "scsi: simplify the bidi completion\n\nLet\u0027s use blk_end_request_all() instead of blk_end_bidi_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": "1822952ba2b9f22f79019d07ebbeca31dc14b718",
      "tree": "de3a727e811f33bc908cd6c4d2f0cf5a1693dab3",
      "parents": [
        "9934c8c04561413609d2bc38c6b9f268cba774a4"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 11 17:56:07 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 11:06:47 2009 +0200"
      },
      "message": "block: let blk_end_request_all handle bidi requests\n\nblk_end_request_all() and __blk_end_request_all() should finish all\nbytes including bidi, by definition. That\u0027s what all bidi users need ,\nbidi requests must be complete as a whole (partial completion is\nimpossible).\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": "9934c8c04561413609d2bc38c6b9f268cba774a4",
      "tree": "30dd8f7be54f9b2e03094de9cd03b6a9ee2909cd",
      "parents": [
        "2343046826a8ca426b07601d9593ee046c298b68"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:16 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:18 2009 +0200"
      },
      "message": "block: implement and enforce request peek/start/fetch\n\nTill now block layer allowed two separate modes of request execution.\nA request is always acquired from the request queue via\nelv_next_request().  After that, drivers are free to either dequeue it\nor process it without dequeueing.  Dequeue allows elv_next_request()\nto return the next request so that multiple requests can be in flight.\n\nExecuting requests without dequeueing has its merits mostly in\nallowing drivers for simpler devices which can\u0027t do sg to deal with\nsegments only without considering request boundary.  However, the\nbenefit this brings is dubious and declining while the cost of the API\nambiguity is increasing.  Segment based drivers are usually for very\nold or limited devices and as converting to dequeueing model isn\u0027t\ndifficult, it doesn\u0027t justify the API overhead it puts on block layer\nand its more modern users.\n\nPrevious patches converted all block low level drivers to dequeueing\nmodel.  This patch completes the API transition by...\n\n* renaming elv_next_request() to blk_peek_request()\n\n* renaming blkdev_dequeue_request() to blk_start_request()\n\n* adding blk_fetch_request() which is combination of peek and start\n\n* disallowing completion of queued (not started) requests\n\n* applying new API to all LLDs\n\nRenamings are for consistency and to break out of tree code so that\nit\u0027s apparent that out of tree drivers need updating.\n\n[ Impact: block request issue API cleanup, no functional change ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Tim Waugh \u003ctim@cyberelk.net\u003e\nCc: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2343046826a8ca426b07601d9593ee046c298b68",
      "tree": "e7250f784a3168506b70d7e8b3f1bbcf9f733953",
      "parents": [
        "296b2f6ae654581adc27f0d6f0af454c7f3d06ee"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:14 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:17 2009 +0200"
      },
      "message": "gdrom: dequeue in-flight request\n\ngdrom already dequeues and fully completes requests on normal path and\nthe error paths can be easily converted to do so too.  Clean it up and\ndequeue requests on error paths too.\n\nWhile at it remove superflous blk_fs_request() \u0026\u0026 !blk_rq_sectors()\ncondition check.\n\n[ Impact: dequeue in-flight request, cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "296b2f6ae654581adc27f0d6f0af454c7f3d06ee",
      "tree": "8fab2b91741336d41e559a839b547d7ac3090524",
      "parents": [
        "fb3ac7f6b811eac8e0aafa3df1c16ed872e898a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:15 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:17 2009 +0200"
      },
      "message": "block: convert to dequeueing model (easy ones)\n\nplat-omap/mailbox, floppy, viocd, mspro_block, i2o_block and\nmmc/card/queue are already pretty close to dequeueing model and can be\nconverted with simple changes.  Convert them.\n\nWhile at it,\n\n* xen-blkfront: !fs check moved downwards to share dequeue call with\n  normal path.\n\n* mspro_block: __blk_end_request(..., blk_rq_cur_byte()) converted to\n  __blk_end_request_cur()\n\n* mmc/card/queue: loop of __blk_end_request() converted to\n  __blk_end_request_all()\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fb3ac7f6b811eac8e0aafa3df1c16ed872e898a8",
      "tree": "bfd7cab2afe52dc4eba37f6428a42c1e496454b0",
      "parents": [
        "6b0bf407b586b6ba8e060ad9979cb2bc3370b7eb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:13 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:17 2009 +0200"
      },
      "message": "z2ram: dequeue in-flight request\n\nz2ram processes requests one-by-one synchronously and can be easily\nconverted to dequeueing model.  Convert it.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6b0bf407b586b6ba8e060ad9979cb2bc3370b7eb",
      "tree": "1c2c5a103d36298662b6af056f2a8fc2aa28e987",
      "parents": [
        "1498ada7a8e80afe324f2b8d86158925d0096ec9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:12 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:17 2009 +0200"
      },
      "message": "jsflash: dequeue in-flight request\n\njsflash processes requests one-by-one synchronously from a kthread and\ncan be easily converted to dequeueing model.  Convert it.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1498ada7a8e80afe324f2b8d86158925d0096ec9",
      "tree": "5c9cc99059b426bb092e681f95ec60c81636dc4b",
      "parents": [
        "bab2a807a489822ded0c9d4a5344c80bcac10b0a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:11 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:17 2009 +0200"
      },
      "message": "mtd_blkdevs: dequeue in-flight request\n\nmtd_blkdevs processes requests one-by-one synchronously from a kthread\nand can be easily converted to dequeueing model.  Convert it.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bab2a807a489822ded0c9d4a5344c80bcac10b0a",
      "tree": "cf93330ae12f820d1dd53bc9d484fa6cad38962c",
      "parents": [
        "06b0608e2b46465e8e663214e7db982ddb000346"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:10 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:16 2009 +0200"
      },
      "message": "xd: dequeue in-flight request\n\nxd processes requests one-by-one synchronously and can be easily\nconverted to dequeueing model.  Convert it.\n\nWhile at it, use rq_cur_bytes instead of rq_bytes when checking for\nsector overflow.  This is for for consistency and better behavior for\nmerged requests.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "06b0608e2b46465e8e663214e7db982ddb000346",
      "tree": "70ad957fc0715fe52fe9dc9b0dac51c63f468518",
      "parents": [
        "9e31bebee2d8b5f8abe9677f2a29b90cba848657"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:09 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:16 2009 +0200"
      },
      "message": "swim: dequeue in-flight request\n\nswim processes requests one-by-one synchronously and can easily be\nconverted to dequeuing model.  Convert it.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9e31bebee2d8b5f8abe9677f2a29b90cba848657",
      "tree": "b9c159c187411db33a5d6169c520f31551f78ad8",
      "parents": [
        "10e1e629b386aef97bf66de6ef28d450bec06ee3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:08 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:16 2009 +0200"
      },
      "message": "amiflop: dequeue in-flight request\n\nRequest processing in amiflop is done sequentially in\nredo_fd_request() proper and redo_fd_request() can easily be converted\nto track in-flight request.  Remove CURRENT, track in-flight request\ndirectly and dequeue it when processing starts.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "10e1e629b386aef97bf66de6ef28d450bec06ee3",
      "tree": "cdcdea0f2b56bacd67ef4e98bd48f9b72faf788c",
      "parents": [
        "b12d4f82c1a3cdcb2441c803a3368a9426f2f47f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:07 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:16 2009 +0200"
      },
      "message": "ps3disk: dequeue in-flight request\n\nOther than in issue error paths, ps3disk always completely finishes\nfetched requests.  With full completion on error paths, it can be\neasily converted to dequeueing model.\n\n* After L1 r/w call failure, ps3disk_submit_request_sg() now fails the\n  whole request.  Issue failure isn\u0027t likely to benefit from partial\n  retry anyway and ps3disk uses full failure in completion error path\n  too, so I don\u0027t think this amounts to any meaningful functionality\n  loss.\n\n* flush completion is converted to _all for consistency.  It doesn\u0027t\n  make any functional difference.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b12d4f82c1a3cdcb2441c803a3368a9426f2f47f",
      "tree": "043c804960c3192076737411c1a6854f2b49ded9",
      "parents": [
        "2d75ce084eec2a8154225c7e978191b364029003"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:06 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:16 2009 +0200"
      },
      "message": "paride: dequeue in-flight request\n\npd/pf/pcd have track in-flight request by pd/pf/pcd_req.  They can be\nconverted to dequeueing model by updating fetching and completion\npaths.  Convert them.\n\nNote that removal of elv_next_request() call from pf_next_buf()\ndoesn\u0027t make any functional difference.  The path is traveled only\nduring partial completion of a request and elv_next_request() call\nmust return the same request anyway.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tim Waugh \u003ctim@cyberelk.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2d75ce084eec2a8154225c7e978191b364029003",
      "tree": "98e529e9acb8b370841ff30a3b967e79c1ac7e05",
      "parents": [
        "f4bd4b90bfa86e867111aa182895cb5ac203aa7a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:05 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:15 2009 +0200"
      },
      "message": "xsysace: dequeue in-flight request\n\nxsysace already tracks in-flight request using ace-\u003ereq.  Converting\nto dequeueing model is mostly a matter of adding dequeueing call after\nrequest fetching.  The only tricky part is handling CF removal which\nshould complete both in flight and on queue requests.  Convert to\ndequeueing model.\n\nWhile at it, remove explicit blk_rq_cur_bytes() and use\n__blk_end_request_cur() instead.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f4bd4b90bfa86e867111aa182895cb5ac203aa7a",
      "tree": "266012f2dca07677b93e1c545f42fd1ede3d9d3d",
      "parents": [
        "a336ca6fe6e0c46b2eef0e520951acb4e6cb2976"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:04 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:15 2009 +0200"
      },
      "message": "swim3: dequeue in-flight request\n\nswim3 has at most single request in flight and already tracks it using\nfd_req.  Convert it to dequeuing model by updating request fetching\nand wrapping completion function.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a336ca6fe6e0c46b2eef0e520951acb4e6cb2976",
      "tree": "c981d2eab7610e0c35d00a567a21250e137291d6",
      "parents": [
        "8a12c4a456c7ee261a85c2cbec835601e6aae05a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:03 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:15 2009 +0200"
      },
      "message": "ataflop: dequeue and track in-flight request\n\nataflop has single request in flight.  Till now, whenever it needs to\naccess the in-flight request it called elv_next_request().  This patch\nmakes ataflop track the in-flight request directly and dequeue it when\nprocessing starts.  The added complexity is minimal and this will help\nfuture block layer changes.\n\n[ Impact: dequeue in-flight request, one elv_next_request() per request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8a12c4a456c7ee261a85c2cbec835601e6aae05a",
      "tree": "90142ec5d30b1a74ded14ac013408c7390caeb1b",
      "parents": [
        "5b36ad6000ddea390aca3c3b67ead7616ace2ffc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:15 2009 +0200"
      },
      "message": "hd: dequeue and track in-flight request\n\nhd has at most single request in flight.  Till now, whenever it needs\nto access the in-flight request it called elv_next_request().  This\npatch makes hd track the in-flight request directly and dequeue it\nwhen processing starts.  The added complexity is minimal and this will\nhelp future block layer changes.\n\n[ Impact: dequeue in-flight request, one elv_next_request() per request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b36ad6000ddea390aca3c3b67ead7616ace2ffc",
      "tree": "dedca03fffd6729487fbd9bc3959428038e0cdfb",
      "parents": [
        "9a8d23d8855e554fc5887f14cb008b55c4300ccc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:01 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:15 2009 +0200"
      },
      "message": "mg_disk: dequeue and track in-flight request\n\nmg_disk has at most single request in flight per device.  Till now,\nwhenever it needs to access the in-flight request it called\nelv_next_request().  This patch makes mg_disk track the in-flight\nrequest directly using mg_host-\u003ereq and dequeue it when processing\nstarts.\n\nq-\u003equeuedata is set to mg_host so that mg_host can be determined\nwithout fetching request from the queue.\n\n[ Impact: dequeue in-flight request, one elv_next_request() per request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9a8d23d8855e554fc5887f14cb008b55c4300ccc",
      "tree": "a754cec4066df52f94161784262edff0de0fb312",
      "parents": [
        "8f6205cd572fece673da0255d74843680f67f879"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:00 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:14 2009 +0200"
      },
      "message": "mg_disk: fix queue hang / infinite retry on !fs requests\n\nBoth request functions in mg_disk simply return when they encounter a\n!fs request, which means the request will never be cleared from the\nqueue causing queue hang and indefinite retry of the request.  Fix it.\n\nWhile at it, flatten condition checks and add unlikely to !fs tests.\n\n[ Impact: fix possible queue hang / infinite retry of !fs requests ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8f6205cd572fece673da0255d74843680f67f879",
      "tree": "bb89c1c5fe4436f5a0ec27f0d96074c7031a83ae",
      "parents": [
        "1011c1b9f2e45ce7c6e38888d2b83936aec38771"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:53:59 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:14 2009 +0200"
      },
      "message": "ide: dequeue in-flight request\n\nide generally has single request in flight and tracks it using\nhwif-\u003erq and all state handlers follow the following convention.\n\n* ide_started is returned if the request is in flight.\n\n* ide_stopped is returned if the queue needs to be restarted.  The\n  request might or might not have been processed fully or partially.\n\n* hwif-\u003erq is set to NULL, when an issued request completes.\n\nSo, dequeueing model can be implemented by dequeueing after fetch,\nrequeueing if hwif-\u003erq isn\u0027t NULL on ide_stopped return and doing\nabout the same thing on completion / port unlock paths.  These changes\ncan be made in ide-io proper.\n\nIn addition to the above main changes, the following updates are\nnecessary.\n\n* ide-cd shouldn\u0027t dequeue a request when issuing REQUEST SENSE for it\n  as the request is already dequeued.\n\n* ide-atapi uses request queue as stack when issuing REQUEST SENSE to\n  put the REQUEST SENSE in front of the failed request.  This now\n  needs to be done using requeueing.\n\n[ Impact: dequeue in-flight request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1011c1b9f2e45ce7c6e38888d2b83936aec38771",
      "tree": "63f1f8f604631f37df9917a941531de0148f8379",
      "parents": [
        "a2dec7b36364a5cc564c4d76cf16d2e7d33f5c05"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:45 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:55 2009 +0200"
      },
      "message": "block: blk_rq_[cur_]_{sectors|bytes}() usage cleanup\n\nWith the previous changes, the followings are now guaranteed for all\nrequests in any valid state.\n\n* blk_rq_sectors() \u003d\u003d blk_rq_bytes() \u003e\u003e 9\n* blk_rq_cur_sectors() \u003d\u003d blk_rq_cur_bytes() \u003e\u003e 9\n\nClean up accessor usages.  Notable changes are\n\n* nbd,i2o_block: end_all used instead of explicit byte count\n* scsi_lib: unnecessary conditional on request type removed\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a2dec7b36364a5cc564c4d76cf16d2e7d33f5c05",
      "tree": "76dfb84ba5fa097a929ab81cf5718c6fcbc9d720",
      "parents": [
        "34b7d2c957199834c474c9d46739265643f4d9c7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:44 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:55 2009 +0200"
      },
      "message": "block: hide request sector and data_len\n\nBlock low level drivers for some reason have been pretty good at\nabusing block layer API.  Especially struct request\u0027s fields tend to\nget violated in all possible ways.  Make it clear that low level\ndrivers MUST NOT access or manipulate rq-\u003esector and rq-\u003edata_len\ndirectly by prefixing them with double underscores.\n\nThis change is also necessary to break build of out-of-tree codes\nwhich assume the previous block API where internal fields can be\nmanipulated and rq-\u003edata_len carries residual count on completion.\n\n[ Impact: hide internal fields, block API change ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "34b7d2c957199834c474c9d46739265643f4d9c7",
      "tree": "b11b89196c6f1c758657d90a79b496c131b2a19c",
      "parents": [
        "b0790410300abaaf4f25f702803beff701baebf1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:43 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:55 2009 +0200"
      },
      "message": "ide: cleanup rq-\u003edata_len usages\n\nWith recent unification of fields, it\u0027s now guaranteed that\nrq-\u003edata_len always equals blk_rq_bytes().  Convert all direct users\nto accessors.\n\n[ Impact: convert direct rq-\u003edata_len usages to blk_rq_bytes() ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b0790410300abaaf4f25f702803beff701baebf1",
      "tree": "63d8fcd38e4cd5927fd83e482e306480bb68a689",
      "parents": [
        "2e46e8b27aa57c6bd34b3102b40ee4d0144b4fab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:55 2009 +0200"
      },
      "message": "block: cleanup rq-\u003edata_len usages\n\nWith recent unification of fields, it\u0027s now guaranteed that\nrq-\u003edata_len always equals blk_rq_bytes().  Convert all non-IDE direct\nusers to accessors.  IDE will be converted in a separate patch.\n\nBoaz: spotted incorrect data_len/resid_len conversion in osd.\n\n[ Impact: convert direct rq-\u003edata_len usages to blk_rq_bytes() ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2e46e8b27aa57c6bd34b3102b40ee4d0144b4fab",
      "tree": "134f560f66c2af277f0f25e5b85f6c1acaddfc06",
      "parents": [
        "9780e2dd8254351f6cbe11304849126b51dbd561"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:41 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:54 2009 +0200"
      },
      "message": "block: drop request-\u003ehard_* and *nr_sectors\n\nstruct request has had a few different ways to represent some\nproperties of a request.  -\u003ehard_* represent block layer\u0027s view of the\nrequest progress (completion cursor) and the ones without the prefix\nare supposed to represent the issue cursor and allowed to be updated\nas necessary by the low level drivers.  The thing is that as block\nlayer supports partial completion, the two cursors really aren\u0027t\nnecessary and only cause confusion.  In addition, manual management of\nrequest detail from low level drivers is cumbersome and error-prone at\nthe very least.\n\nAnother interesting duplicate fields are rq-\u003e[hard_]nr_sectors and\nrq-\u003e{hard_cur|current}_nr_sectors against rq-\u003edata_len and\nrq-\u003ebio-\u003ebi_size.  This is more convoluted than the hard_ case.\n\nrq-\u003e[hard_]nr_sectors are initialized for requests with bio but\nblk_rq_bytes() uses it only for !pc requests.  rq-\u003edata_len is\ninitialized for all request but blk_rq_bytes() uses it only for pc\nrequests.  This causes good amount of confusion throughout block layer\nand its drivers and determining the request length has been a bit of\nblack magic which may or may not work depending on circumstances and\nwhat the specific LLD is actually doing.\n\nrq-\u003e{hard_cur|current}_nr_sectors represent the number of sectors in\nthe contiguous data area at the front.  This is mainly used by drivers\nwhich transfers data by walking request segment-by-segment.  This\nvalue always equals rq-\u003ebio-\u003ebi_size \u003e\u003e 9.  However, data length for\npc requests may not be multiple of 512 bytes and using this field\nbecomes a bit confusing.\n\nIn general, having multiple fields to represent the same property\nleads only to confusion and subtle bugs.  With recent block low level\ndriver cleanups, no driver is accessing or manipulating these\nduplicate fields directly.  Drop all the duplicates.  Now rq-\u003esector\nmeans the current sector, rq-\u003edata_len the current total length and\nrq-\u003ebio-\u003ebi_size the current segment length.  Everything else is\ndefined in terms of these three and available only through accessors.\n\n* blk_recalc_rq_sectors() is collapsed into blk_update_request() and\n  now handles pc and fs requests equally other than rq-\u003esector update.\n  This means that now pc requests can use partial completion too (no\n  in-kernel user yet tho).\n\n* bio_cur_sectors() is replaced with bio_cur_bytes() as block layer\n  now uses byte count as the primary data length.\n\n* blk_rq_pos() is now guranteed to be always correct.  In-block users\n  converted.\n\n* blk_rq_bytes() is now guaranteed to be always valid as is\n  blk_rq_sectors().  In-block users converted.\n\n* blk_rq_sectors() is now guaranteed to equal blk_rq_bytes() \u003e\u003e 9.\n  More convenient one is used.\n\n* blk_rq_bytes() and blk_rq_cur_bytes() are now inlined and take const\n  pointer to request.\n\n[ Impact: API cleanup, single way to represent one property of a request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9780e2dd8254351f6cbe11304849126b51dbd561",
      "tree": "a987a9d671302f4a5133cbf1d7880158a9f21315",
      "parents": [
        "83096ebf1263b2c1ee5e653ba37d993d02e3eb7b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:40 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:54 2009 +0200"
      },
      "message": "ide: convert to rq pos and nr_sectors accessors\n\nide doesn\u0027t manipulate request fields anymore and thus all hard and\ntheir soft equivalents are always equal.  Convert all references to\naccessors.\n\n[ Impact: use pos and nr_sectors accessors ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "83096ebf1263b2c1ee5e653ba37d993d02e3eb7b",
      "tree": "2226b71a616ec1cb2d37511c6a09ba9507a1cd69",
      "parents": [
        "5b93629b4509c03ffa87a9316412fedf6f58cb37"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:39 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:54 2009 +0200"
      },
      "message": "block: convert to pos and nr_sectors accessors\n\nWith recent cleanups, there is no place where low level driver\ndirectly manipulates request fields.  This means that the \u0027hard\u0027\nrequest fields always equal the !hard fields.  Convert all\nrq-\u003esectors, nr_sectors and current_nr_sectors references to\naccessors.\n\nWhile at it, drop superflous blk_rq_pos() \u003c 0 test in swim.c.\n\n[ Impact: use pos and nr_sectors accessors ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nTested-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nTested-by: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nAcked-by: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nAcked-by: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Tim Waugh \u003ctim@cyberelk.net\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Dario Ballabio \u003cballabio_dario@emc.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nCc: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b93629b4509c03ffa87a9316412fedf6f58cb37",
      "tree": "ad5ceda3f718361b8df3057b4f9edcc79aa4cd9d",
      "parents": [
        "c3a4d78c580de4edc9ef0f7c59812fb02ceb037f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:38 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "block: implement blk_rq_pos/[cur_]sectors() and convert obvious ones\n\nImplement accessors - blk_rq_pos(), blk_rq_sectors() and\nblk_rq_cur_sectors() which return rq-\u003ehard_sector, rq-\u003ehard_nr_sectors\nand rq-\u003ehard_cur_sectors respectively and convert direct references of\nthe said fields to the accessors.\n\nThis is in preparation of request data length handling cleanup.\n\nGeert\t: suggested adding const to struct request * parameter to accessors\nSergei\t: spotted error in patch description\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nTested-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAckec-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c3a4d78c580de4edc9ef0f7c59812fb02ceb037f",
      "tree": "916ca44287100707508678e2cc0eff0c43b9ca39",
      "parents": [
        "9720aef2539c10e3a872e9a92beec225030d99db"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:37 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "block: add rq-\u003eresid_len\n\nrq-\u003edata_len served two purposes - the length of data buffer on issue\nand the residual count on completion.  This duality creates some\nheadaches.\n\nFirst of all, block layer and low level drivers can\u0027t really determine\nwhat rq-\u003edata_len contains while a request is executing.  It could be\nthe total request length or it coulde be anything else one of the\nlower layers is using to keep track of residual count.  This\ncomplicates things because blk_rq_bytes() and thus\n[__]blk_end_request_all() relies on rq-\u003edata_len for PC commands.\nDrivers which want to report residual count should first cache the\ntotal request length, update rq-\u003edata_len and then complete the\nrequest with the cached data length.\n\nSecondly, it makes requests default to reporting full residual count,\nie. reporting that no data transfer occurred.  The residual count is\nan exception not the norm; however, the driver should clear\nrq-\u003edata_len to zero to signify the normal cases while leaving it\nalone means no data transfer occurred at all.  This reverse default\nbehavior complicates code unnecessarily and renders block PC on some\ndrivers (ide-tape/floppy) unuseable.\n\nThis patch adds rq-\u003eresid_len which is used only for residual count.\n\nWhile at it, remove now unnecessasry blk_rq_bytes() caching in\nide_pc_intr() as rq-\u003edata_len is not changed anymore.\n\nBoaz\t: spotted missing conversion in osd\nSergei\t: spotted too early conversion to blk_rq_bytes() in ide-tape\n\n[ Impact: cleanup residual count handling, report 0 resid by default ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Doug Gilbert \u003cdgilbert@interlog.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9720aef2539c10e3a872e9a92beec225030d99db",
      "tree": "9c884ca078ddb0e9cffdd3bb11cf7569db47567c",
      "parents": [
        "53d6979ab6747e758207e8ac861b96d0da0d3332"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:36 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "ide-tape: don\u0027t initialize rq-\u003esector for rw requests\n\nrq-\u003esector is set to the tape-\u003efirst_frame but it\u0027s never actually\nused and not even in the correct unit (512 byte sectors).  Don\u0027t set\nit.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nAcked-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "53d6979ab6747e758207e8ac861b96d0da0d3332",
      "tree": "f95147fe83e984a1311db3da47d8d12b9ecbbf01",
      "parents": [
        "f68adec3c7155a8bbf32a90cb4c4d0737df045d9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:35 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "nbd: don\u0027t clear rq-\u003esector and nr_sectors unnecessarily\n\nThere\u0027s no reason to clear rq-\u003esector and nr_sectors after calling\nblk_rq_init().  They\u0027re guaranteed to be clear.  Drop unnecessary\nclearing.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f68adec3c7155a8bbf32a90cb4c4d0737df045d9",
      "tree": "6fcdebf47e3ec5b39beaa20cbd4b919353cc0cff",
      "parents": [
        "8a11a789c39cd6f61de4243234cf44a46c23ffd0"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Apr 28 13:06:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:52 2009 +0200"
      },
      "message": "mg_disk: use defines from \u003clinux/ata.h\u003e\n\nWhile at it:\n- remove MG_REG_HEAD_MUST_BE_ON define\n- remove MG_REG_CTRL_INTR_ENABLE define\n- remove MG_REG_HEAD_LBA_MODE define\n- remove unused defines\n\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8a11a789c39cd6f61de4243234cf44a46c23ffd0",
      "tree": "ec88d32cffdf40bf13c3f83ad4220e4205666e3f",
      "parents": [
        "a03bb5a32fff4aa23f081a3cff7e98d4084104cd"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Apr 28 13:06:16 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:52 2009 +0200"
      },
      "message": "mg_disk: fix dependency on libata\n\nAdd local copies of ata_id_string() and ata_id_c_string() to mg_disk\nso there is no need for the driver to depend on ATA and SCSI.\n\n[ Impact: break dependency on libata by copying ata id string functions ]\n\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a03bb5a32fff4aa23f081a3cff7e98d4084104cd",
      "tree": "9aca610d0e94a6266f17458de4464402c7f53c6b",
      "parents": [
        "eec9462088a26c046d4db3100796a340a50890b8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:15 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:51 2009 +0200"
      },
      "message": "mg_disk: clean up request completion paths\n\nmg_disk implements its own partial completion.  Convert to standard\nblock layer partial completion.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "eec9462088a26c046d4db3100796a340a50890b8",
      "tree": "7038abaee44acf1498ede878257ea30f7ebb3c40",
      "parents": [
        "e138b4e08ef65771000fbe6d93d67e3960ff862b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:14 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:51 2009 +0200"
      },
      "message": "mg_disk: fold mg_disk.h into mg_disk.c\n\ninclude/linux/mg_disk.h is used only by drivers/block/mg_disk.c.  No\nreason to put it in a separate header.  Fold it into mg_disk.c.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e138b4e08ef65771000fbe6d93d67e3960ff862b",
      "tree": "2f7593bc1774bd6771dc29b8a522d681e9aa1719",
      "parents": [
        "467ca759fc83fc35cb7d15aec0d74c62cffc4481"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:13 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:51 2009 +0200"
      },
      "message": "swim: clean up request completion paths\n\nswim curiously tries to update request parameters before calling\n__blk_end_request() when __blk_end_request() will do it anyway and\nunnecessarily checks whether current_nr_sectors is zero right after\nfetching.\n\nDrop unnecessary stuff and use standard block layer mechanisms.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "467ca759fc83fc35cb7d15aec0d74c62cffc4481",
      "tree": "c3b1e83b73df349ce246ada97775d2f7ed6ddd58",
      "parents": [
        "e091eb67af957bac4e4f7410c5d1aa263ee483a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:12 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:51 2009 +0200"
      },
      "message": "swim3: clean up request completion paths\n\nswim3 curiously tries to update request parameters before calling\n__blk_end_request() when __blk_end_request() will do it anyway, and it\nupdates request for partial completion manually instead of using\nblk_update_request().  Also, it does some spurious checks on rq such\nas testing whether rq-\u003esector is negative or current_nr_sectors is\nzero right after fetching.\n\nDrop unnecessary stuff and use standard block layer mechanisms.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e091eb67af957bac4e4f7410c5d1aa263ee483a4",
      "tree": "2be45bf08417bb1e2159f0a7519e9c79ac7d5a8f",
      "parents": [
        "f81f2f7c9fee307e371f37424577d46f9eaf8692"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:11 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:51 2009 +0200"
      },
      "message": "hd: clean up request completion paths\n\nhd read/write_intr() functions manually manipulate request to\nincrementally complete it, which block layer already supports.  Simply\nuse block layer completion routines instead of manual partial\ncompletion.\n\nWhile at it, clear unnecessary elv_next_request() check at the tail of\nread_intr().  This also makes read and write_intr() more consistent.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f81f2f7c9fee307e371f37424577d46f9eaf8692",
      "tree": "75bb4afd8690847234d502ad244d90c8c20a7bc6",
      "parents": [
        "4d6c84d91d1a539ebc47d1a36a35e9390ba11fdc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:10 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:51 2009 +0200"
      },
      "message": "ubd: drop unnecessary rq-\u003esector manipulation\n\nubd curiously updates rq-\u003esector while issuing the request in multiple\npieces.  Don\u0027t do it and simply use local copy of sector.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4d6c84d91d1a539ebc47d1a36a35e9390ba11fdc",
      "tree": "62917c8a59bef037231ba0869a688651aba099dc",
      "parents": [
        "044208506d35bd62396c4673176e2c12393905b8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:09 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:50 2009 +0200"
      },
      "message": "ubd: cleanup completion path\n\nubd had its own block request partial completion mechanism, which is\nunnecessary as block layer already does it.  Kill ubd_end_request()\nand ubd_finish() and replace them with direct call to\nblk_end_request().\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "044208506d35bd62396c4673176e2c12393905b8",
      "tree": "cf3623eb1693e04010e92f8f631e2354016fc3a4",
      "parents": [
        "cd4c34ebec155e5c10f897d9bebf618248121e70"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:08 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:50 2009 +0200"
      },
      "message": "sunvdc: kill vdc_end_request()\n\nvdc_end_request() is a thin silly wrapper on top of\n__blk_end_request().  Kill it.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cd4c34ebec155e5c10f897d9bebf618248121e70",
      "tree": "17baaee04a3b360fdc4a85ca53f31b7d92475bdd",
      "parents": [
        "5b5c5d12b91cb6b2a2967f06aef35d59008dc2e7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:07 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:50 2009 +0200"
      },
      "message": "ps3disk: simplify request completion\n\nps3disk_interrupt() always completes requests fully but it uses\nrq-\u003ehard_cur_sectors for FLUSH requests for some reason.  Drop them\nand simply use __blk_end_request_all().\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b5c5d12b91cb6b2a2967f06aef35d59008dc2e7",
      "tree": "ea8397d10aaedda61fcc849ce9a7fcab17b5438b",
      "parents": [
        "4c94dece1baf320d925cedb231489c4e0358ac5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:06 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:50 2009 +0200"
      },
      "message": "amiflop,ataflop,xd,mg_disk: clean up unnecessary stuff from block drivers\n\nrq_data_dir() can only be READ or WRITE and rq-\u003esector and nr_sectors\nare always automatically updated after partial request completion.\nDon\u0027t worry about rq_data_dir() not being either READ or WRITE or\nmanually update sector and nr_sectors.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jörg Dorchain \u003cjoerg@dorchain.net\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4c94dece1baf320d925cedb231489c4e0358ac5a",
      "tree": "fd0738e2f82c806e921e6c872b704cfbef3c0a1d",
      "parents": [
        "9fd8d0e1bcb848257968d9a7d73ca4d890ea8bd1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:05 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:50 2009 +0200"
      },
      "message": "block: don\u0027t init rq fields unnecessarily\n\nblk_get_request() always returns properly zeroed requests.  Don\u0027t set\nfields to zero/NULL unnecessarily.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9fd8d0e1bcb848257968d9a7d73ca4d890ea8bd1",
      "tree": "6ecdb8af44feda12713c1bee34a1ad5e9e978ee8",
      "parents": [
        "9eb55b030c4b3227334ee4482402096cd1d1a6fe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:04 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:49 2009 +0200"
      },
      "message": "block: make blk_end_request_cur() return bool\n\nIn the process of mindlessly copying [__]blk_end_request_all(),\n[__]blk_end_request_cur() ended up returning void even though they\u0027re\npartial completion functions.  Fix it.\n\n[ Impact: fix braindead API ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9eb55b030c4b3227334ee4482402096cd1d1a6fe",
      "tree": "e6c5c6e31692c715b911b18474ef6e4c627723bd",
      "parents": [
        "c69d48540c201394d08cb4d48b905e001313d9b8"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Mon Apr 27 14:53:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:37 2009 +0200"
      },
      "message": "block: catch trying to use more bits than request-\u003ecmd_flags has\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c69d48540c201394d08cb4d48b905e001313d9b8",
      "tree": "6ad78b44cd7fc5d65a0c3bded49f8cb14f4790a9",
      "parents": [
        "c2553b5844b06910435e40cfab9e6f384840cb97"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:12:19 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:37 2009 +0200"
      },
      "message": "block: include discard requests in IO accounting\n\nWe currently don\u0027t do merging on discard requests, but we potentially\ncould. If we do, then we need to include discard requests in the IO\naccounting, or merging would end up decrementing in_flight IO counters\nfor an IO which never incremented them.\n\nSo enable accounting for discard requests.\n\nProblem found by Nikanth Karthikesan \u003cknikanth@suse.de\u003e\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c2553b5844b06910435e40cfab9e6f384840cb97",
      "tree": "00a6a1f0c056f19050a8b7c7a1db7b7e0e502062",
      "parents": [
        "731ec497e5888c6792ad62613ae9be97eebcd7ca"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:10:11 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:37 2009 +0200"
      },
      "message": "block: make blk_do_io_stat() do the full \"is this rq accountable\" checks\n\nWe currently check for file system requests outside of blk_do_io_stat(rq),\nbut we may as well just include it.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "731ec497e5888c6792ad62613ae9be97eebcd7ca",
      "tree": "689a8442d8bdfd50ee6ab05b0c6acd0d229fe391",
      "parents": [
        "ec24751a6b57e1373a12361e581b2458bc9bb791"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:20 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:36 2009 +0200"
      },
      "message": "block: kill rq-\u003edata\n\nNow that all block request data transfer is done via bio, rq-\u003edata\nisn\u0027t used.  Kill it.\n\nWhile at it, make the roles of rq-\u003especial and buffer clear.\n\n[ Impact: drop now unncessary field from struct request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n"
    },
    {
      "commit": "ec24751a6b57e1373a12361e581b2458bc9bb791",
      "tree": "098ce79b89e10437d7660f3d65935a48f31a611c",
      "parents": [
        "f06d9a2b52e246a66b606130cea3f0d7b7be17a7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:20 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:36 2009 +0200"
      },
      "message": "arm-omap: don\u0027t abuse rq-\u003edata\n\nomap mailbox uses rq-\u003edata as the second opaque pointer to carry\nmbox_msg_t and rq-\u003especial message argument which is needed only for\ntx.  Add and use omap_msg_tx_data struct for tx and use rq-\u003especial\nfor mbox_msg_t for rx such that only rq-\u003especial is used as opaque\npointer.\n\n[ Impact: cleanup rq-\u003edata usage, extra kmalloc in msg_send ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "f06d9a2b52e246a66b606130cea3f0d7b7be17a7",
      "tree": "020df1f9d54b00c72d8af02ac0827d496597e75a",
      "parents": [
        "40cbbb781d3eba5d6ac0860db078af490e5c7c6b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:19 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:36 2009 +0200"
      },
      "message": "block: replace end_request() with [__]blk_end_request_cur()\n\nend_request() has been kept around for backward compatibility;\nhowever, it\u0027s about time for it to go away.\n\n* There aren\u0027t too many users left.\n\n* Its use of @updtodate is pretty confusing.\n\n* In some cases, newer code ends up using mixture of end_request() and\n  [__]blk_end_request[_all](), which is way too confusing.\n\nSo, add [__]blk_end_request_cur() and replace end_request() with it.\nMost conversions are straightforward.  Noteworthy ones are...\n\n* paride/pcd: next_request() updated to take 0/-errno instead of 1/0.\n\n* paride/pf: pf_end_request() and next_request() updated to take\n  0/-errno instead of 1/0.\n\n* xd: xd_readwrite() updated to return 0/-errno instead of 1/0.\n\n* mtd/mtd_blkdevs: blktrans_discard_request() updated to return\n  0/-errno instead of 1/0.  Unnecessary local variable res\n  initialization removed from mtd_blktrans_thread().\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Joerg Dorchain \u003cjoerg@dorchain.net\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nCc: Tim Waugh \u003ctim@cyberelk.net\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\n"
    },
    {
      "commit": "40cbbb781d3eba5d6ac0860db078af490e5c7c6b",
      "tree": "dec374543cf045fc630bccddbb7646c695094b0d",
      "parents": [
        "b243ddcbe9be146172baa544dadecebf156eda0e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:19 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:35 2009 +0200"
      },
      "message": "block: implement and use [__]blk_end_request_all()\n\nThere are many [__]blk_end_request() call sites which call it with\nfull request length and expect full completion.  Many of them ensure\nthat the request actually completes by doing BUG_ON() the return\nvalue, which is awkward and error-prone.\n\nThis patch adds [__]blk_end_request_all() which takes @rq and @error\nand fully completes the request.  BUG_ON() is added to to ensure that\nthis actually happens.\n\nMost conversions are simple but there are a few noteworthy ones.\n\n* cdrom/viocd: viocd_end_request() replaced with direct calls to\n  __blk_end_request_all().\n\n* s390/block/dasd: dasd_end_request() replaced with direct calls to\n  __blk_end_request_all().\n\n* s390/char/tape_block: tapeblock_end_request() replaced with direct\n  calls to blk_end_request_all().\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b243ddcbe9be146172baa544dadecebf156eda0e",
      "tree": "20ae5d9460498ae6c53e9e82f1b9d9ed6daffbb3",
      "parents": [
        "2e60e02297cf54e367567f2d85b2ca56b1c4a906"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:35 2009 +0200"
      },
      "message": "block: move rq-\u003estart_time initialization to blk_rq_init()\n\nrq-\u003estart_time was initialized in init_request_from_bio() so special\nrequests didn\u0027t have start_time set.  This has been okay as start_time\nhas been used only for fs requests; however, there is no indication of\nthis actually is the case or not.  Set rq-\u003estart_time in blk_rq_init()\nand guarantee that all initialized rq\u0027s have its start_time set.  This\nimproves consistency at virtually no cost and future changes will make\nuse of the timestamp for !bio requests.\n\n[ Impact: rq-\u003estart_time is valid for all requests ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2e60e02297cf54e367567f2d85b2ca56b1c4a906",
      "tree": "ea824afcaff58be894799a011f74d80c3560f372",
      "parents": [
        "0b302d5aa7975006fa2ec3d66386610b9b36c669"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:35 2009 +0200"
      },
      "message": "block: clean up request completion API\n\nRequest completion has gone through several changes and became a bit\nmessy over the time.  Clean it up.\n\n1. end_that_request_data() is a thin wrapper around\n   end_that_request_data_first() which checks whether bio is NULL\n   before doing anything and handles bidi completion.\n   blk_update_request() is a thin wrapper around\n   end_that_request_data() which clears nr_sectors on the last\n   iteration but doesn\u0027t use the bidi completion.\n\n   Clean it up by moving the initial bio NULL check and nr_sectors\n   clearing on the last iteration into end_that_request_data() and\n   renaming it to blk_update_request(), which makes blk_end_io() the\n   only user of end_that_request_data().  Collapse\n   end_that_request_data() into blk_end_io().\n\n2. There are four visible completion variants - blk_end_request(),\n   __blk_end_request(), blk_end_bidi_request() and end_request().\n   blk_end_request() and blk_end_bidi_request() uses blk_end_request()\n   as the backend but __blk_end_request() and end_request() use\n   separate implementation in __blk_end_request() due to different\n   locking rules.\n\n   blk_end_bidi_request() is identical to blk_end_io().  Collapse\n   blk_end_io() into blk_end_bidi_request(), separate out request\n   update into internal helper blk_update_bidi_request() and add\n   __blk_end_bidi_request().  Redefine [__]blk_end_request() as thin\n   inline wrappers around [__]blk_end_bidi_request().\n\n3. As the whole request issue/completion usages are about to be\n   modified and audited, it\u0027s a good chance to convert completion\n   functions return bool which better indicates the intended meaning\n   of return values.\n\n4. The function name end_that_request_last() is from the days when it\n   was a public interface and slighly confusing.  Give it a proper\n   internal name - blk_finish_request().\n\n5. Add description explaning that blk_end_bidi_request() can be safely\n   used for uni requests as suggested by Boaz Harrosh.\n\nThe only visible behavior change is from #1.  nr_sectors counts are\ncleared after the final iteration no matter which function is used to\ncomplete the request.  I couldn\u0027t find any place where the code\nassumes those nr_sectors counters contain the values for the last\nsegment and this change is good as it makes the API much more\nconsistent as the end result is now same whether a request is\ncompleted using [__]blk_end_request() alone or in combination with\nblk_update_request().\n\nAPI further cleaned up per Christoph\u0027s suggestion.\n\n[ Impact: cleanup, rq-\u003e*nr_sectors always updated after req completion ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "0b302d5aa7975006fa2ec3d66386610b9b36c669",
      "tree": "bba5de7b377ad167c4291cbdfd203ca7616d696d",
      "parents": [
        "158dbda0068e63c7cce7bd47c123bd1dfa5a902c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: kill blk_end_request_callback()\n\nWith recent IDE updates, blk_end_request_callback() doesn\u0027t have any\nuser now.  Kill it.\n\n[ Impact: removal of unused convoluted interface ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "158dbda0068e63c7cce7bd47c123bd1dfa5a902c",
      "tree": "2665f31350ba4f0875c7611c980b0831c22d8c98",
      "parents": [
        "5efccd17ceb0fc43837a331297c2c407969d7201"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: reorganize request fetching functions\n\nImpact: code reorganization\n\nelv_next_request() and elv_dequeue_request() are public block layer\ninterface than actual elevator implementation.  They mostly deal with\nhow requests interact with block layer and low level drivers at the\nbeginning of rqeuest processing whereas __elv_next_request() is the\nactual eleveator request fetching interface.\n\nMove the two functions to blk-core.c.  This prepares for further\ninterface cleanup.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "5efccd17ceb0fc43837a331297c2c407969d7201",
      "tree": "6678ebea73ffc9f2ad35029eaaf49e68073e4e88",
      "parents": [
        "2eef33e439ba9ae387cdc3f1abcef2f3f6c4e7a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: reorder request completion functions\n\nReorder request completion functions such that\n\n* All request completion functions are located together.\n\n* Functions which are used by only one caller is put right above the\n  caller.\n\n* end_request() is put after other completion functions but before\n  blk_update_request().\n\nThis change is for completion function cleanup which will follow.\n\n[ Impact: cleanup, code reorganization ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2eef33e439ba9ae387cdc3f1abcef2f3f6c4e7a8",
      "tree": "a25b4d1f59aaf23295a853beeb3922f58ee04b2b",
      "parents": [
        "10732f5661fb7adf62e20733b0030fc0fc93b0c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: clean up misc stuff after block layer timeout conversion\n\n* In blk_rq_timed_out_timer(), else { if } to else if\n\n* In blk_add_timer(), simplify if/else block\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "10732f5661fb7adf62e20733b0030fc0fc93b0c4",
      "tree": "4d3792fd76624671503513e727bd5de6bcaa2450",
      "parents": [
        "e4025f6c21f1389696c069be2dc647f364925c45"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: cleanup REQ_SOFTBARRIER usages\n\nblk_insert_request() doesn\u0027t need to worry about REQ_SOFTBARRIER.\nDon\u0027t set it.  Combined with recent ide updates, REQ_SOFTBARRIER is\nnow only used in elevator proper and for discard requests.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e4025f6c21f1389696c069be2dc647f364925c45",
      "tree": "4d7ee21062293c9a9d398063c22339b47f581283",
      "parents": [
        "a7f557923441186a3cdbabc54f1bcacf42b63bf5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: don\u0027t set REQ_NOMERGE unnecessarily\n\nRQ_NOMERGE_FLAGS already clears defines which REQ flags aren\u0027t\nmergeable.  There is no reason to specify it superflously.  It only\nadds to confusion.  Don\u0027t set REQ_NOMERGE for barriers and requests\nwith specific queueing directive.  REQ_NOMERGE is now exclusively used\nby the merging code.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a7f557923441186a3cdbabc54f1bcacf42b63bf5",
      "tree": "48e37802174cb98be43d89eb8bc4e466f4d79a02",
      "parents": [
        "a538cd03be6f363d039daa94199c28cfbd508455"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: kill blk_start_queueing()\n\nblk_start_queueing() is identical to __blk_run_queue() except that it\ndoesn\u0027t check for recursion.  None of the current users depends on\nblk_start_queueing() running request_fn directly.  Replace usages of\nblk_start_queueing() with [__]blk_run_queue() and kill it.\n\n[ Impact: removal of mostly duplicate interface function ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a538cd03be6f363d039daa94199c28cfbd508455",
      "tree": "47d327e3339f5f07c4f4386537fab526310344a7",
      "parents": [
        "db2dbb12dc47a50c7a4c5678f526014063e486f6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: merge blk_invoke_request_fn() into __blk_run_queue()\n\n__blk_run_queue wraps blk_invoke_request_fn() such that it\nadditionally removes plug and bails out early if the queue is empty.\nBoth extra operations have their own pending mechanisms and don\u0027t\ncause any harm correctness-wise when they are done superflously.\n\nThe only user of blk_invoke_request_fn() being blk_start_queue(),\nthere isn\u0027t much reason to keep both functions around.  Merge\nblk_invoke_request_fn() into __blk_run_queue() and make\nblk_start_queue() use __blk_run_queue() instead.\n\n[ Impact: merge two subtly different internal functions ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "db2dbb12dc47a50c7a4c5678f526014063e486f6",
      "tree": "8bfa3fe41e674f584eb37a7767c008d609b41d75",
      "parents": [
        "db29a6b49674085f136331014ba0eee249c16a2c"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Apr 22 14:08:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: implement blkdev_readpages\n\nDoing a proper block dev -\u003ereadpages() speeds up the crazy dump(8)\napproach of using interleaved process IO.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "db29a6b49674085f136331014ba0eee249c16a2c",
      "tree": "423676abaf2067b2d359a2439e00616812ee55f7",
      "parents": [
        "586cf2681f527ce8b85b9bd57c8b9f7945fbe051"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Apr 21 09:27:03 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: enable by default support for large devices and files on 32-bit archs\n\nEnable by default support for large devices and files (CONFIG_LBD):\n\n- With 1TB disks being a commodity hardware it is quite easy to hit 2TB\n  limitation while building RAIDs etc. and many distros have been using\n  CONFIG_LBD\u003dy by default already (at least Fedora 10 and openSUSE 11.1).\n\n- This should also prevent a subtle ext4 filesystem compatibility issue:\n  mke2fs.ext4 defaults to creating filesystems with huge_files feature\n  enabled and such filesystems cannot be later mounted read-write on\n  machines with CONFIG_LBD\u003dn (it should be quite easy to hit this issue\n  when trying to use filesystem created using distro kernel on system\n  running the self-build kernel, think about USB disk enclosures \u0026 co.).\n\nWhile at it:\n\n- Clarify config option help text w.r.t. mounting ext4 filesystems\n  (they can be mounted with CONFIG_LBD\u003dn but in the read-only mode).\n\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "586cf2681f527ce8b85b9bd57c8b9f7945fbe051",
      "tree": "cbd2efbd93677d81929417fcb3faf94460737dd0",
      "parents": [
        "5ad960fe8d0e4f99fe2b8dded45e8251137293c9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 21 12:16:56 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "ide-dma: don\u0027t reset request fields on dma_timeout_retry()\n\nImpact: drop unnecessary code\n\nNow that everything uses bio and block operations, there is no need to\nreset request fields manually when retrying a request.  Every field is\nguaranteed to be always valid.  Drop unnecessary request field\nresetting from ide_dma_timeout_retry().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "5ad960fe8d0e4f99fe2b8dded45e8251137293c9",
      "tree": "b781a857b5bc7ed2ca13b852bda1da316d3f1f7a",
      "parents": [
        "29d1a4371035e01b0d079bc5aa88b50f5af7a566"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:03 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:32 2009 +0200"
      },
      "message": "ide: drop rq-\u003edata handling from ide_map_sg()\n\nImpact: remove code path which is no longer necessary\n\nAll IDE data transfers now use rq-\u003ebio.  Simplify ide_map_sg()\naccordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "29d1a4371035e01b0d079bc5aa88b50f5af7a566",
      "tree": "4aad5a0868e1929f0ced33ffde34b334760c0522",
      "parents": [
        "4344d07fb8dbf0cbfec1f7d7c1afeccaceaaa120"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:03 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:32 2009 +0200"
      },
      "message": "ide-atapi: kill unused fields and callbacks\n\nImpact: remove fields and code paths which are no longer necessary\n\nNow that ide-tape uses standard mechanisms to transfer data, special\ncase handling for bh handling can be dropped from ide-atapi.  Drop the\nfollowings.\n\n* pc-\u003ecur_pos, b_count, bh and b_data\n* drive-\u003epc_update_buffers() and pc_io_buffers().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "4344d07fb8dbf0cbfec1f7d7c1afeccaceaaa120",
      "tree": "40a0dccbf1b9100efa71971b930f15e1b2daef1e",
      "parents": [
        "71294cf93d22ceaa75448cc6ebee2c65897be8c2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:03 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:32 2009 +0200"
      },
      "message": "ide-tape: simplify read/write functions\n\nImpact: cleanup\n\nidetape_chrdev_read/write() functions are unnecessarily complex when\neverything can be handled in a single loop.  Collapse\nidetape_add_chrdev_read/write_request() into the rw functions and\nsimplify the implementation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "71294cf93d22ceaa75448cc6ebee2c65897be8c2",
      "tree": "a57f2b7ceea1fc490234aa8474b89ade9e262da3",
      "parents": [
        "3596b66452491a3cff26256a5e6e6061a66c4142"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:03 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:32 2009 +0200"
      },
      "message": "ide-tape: use byte size instead of sectors on rw issue functions\n\nImpact: cleanup\n\nByte size is what most issue functions deal with, make\nidetape_queue_rw_tail() and its wrappers take byte size instead of\nsector counts.  idetape_chrdev_read() and write() functions are\nconverted to use tape-\u003ebuffer_size instead of ctl from tape-\u003ecap.\n\nThis cleans up code a little bit and will ease the next r/w\nreimplementation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "3596b66452491a3cff26256a5e6e6061a66c4142",
      "tree": "059bc3ca0760b1f71eead91a70e1081e7f7be9b8",
      "parents": [
        "6cf3d545f7d71b183e5b89960d4cc850a42c410d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:32 2009 +0200"
      },
      "message": "ide-tape: unify r/w init paths\n\nImpact: cleanup\n\nRead and write init paths are almost identical.  Unify them into\nidetape_init_rw().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6cf3d545f7d71b183e5b89960d4cc850a42c410d",
      "tree": "6c1f861ccf5c8cdd858cacf8800c84a4337c9f13",
      "parents": [
        "e998f30b45efb99a3c3ce7b5483f76317a17abed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:31 2009 +0200"
      },
      "message": "ide-tape: kill idetape_bh\n\nImpact: kill now unnecessary idetape_bh\n\nWith everything using standard mechanisms, there is no need for\nidetape_bh anymore.  Kill it and use tape-\u003ebuf, cur and valid to\ndescribe data buffer instead.\n\nChanges worth mentioning are...\n\n* idetape_queue_rq_tail() now always queue tape-\u003ebuf and and adjusts\n  buffer state properly before completion.\n\n* idetape_pad_zeros() clears the buffer only once.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e998f30b45efb99a3c3ce7b5483f76317a17abed",
      "tree": "a471752f5190dd77d78b2df5cd0c503e60d2f20f",
      "parents": [
        "7b13354eeaabaf6283b8c669a7d67d104ce7c638"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:31 2009 +0200"
      },
      "message": "ide-tape: use standard data transfer mechanism\n\nImpact: use standard way to transfer data\n\nide-tape uses rq in an interesting way.  For r/w requests, rq-\u003especial\nis used to carry a private buffer management structure idetape_bh and\nrq-\u003enr_sectors and current_nr_sectors are initialized to the number of\nidetape blocks which isn\u0027t necessary 512 bytes.  Also,\nrq-\u003ecurrent_nr_sectors is used to report back the residual count in\nunits of idetape blocks.\n\nThis peculiarity taxes both block layer and ide.  ide-atapi has\ndifferent paths and hooks to accomodate it and what a rq means becomes\nquite confusing and making changes at the block layer becomes quite\ndifficult and error-prone.\n\nThis patch makes ide-tape use bio instead.  With the previous patch,\nide-tape currently is using single contiguos buffer so replacing it\nisn\u0027t difficult.  Data buffer is mapped into bio using\nblk_rq_map_kern() in idetape_queue_rw_tail().  idetape_io_buffers()\nand idetape_update_buffers() are dropped and pc-\u003ebh is set to null to\ntell ide-atapi to use standard data transfer mechanism and idetape_bh\nbyte counts are updated by the issuer on completion using the residual\ncount.\n\nThis change also nicely removes the FIXME in ide_pc_intr() where\nide-tape rqs need to be completed using ide_rq_bytes() instead of\nblk_rq_bytes() (although this didn\u0027t really matter as the request\ndidn\u0027t have bio).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7b13354eeaabaf6283b8c669a7d67d104ce7c638",
      "tree": "d8d9bde1f102f5dd8d8c5a504948549e90595a25",
      "parents": [
        "eb6a61bb9543aa54d62595e27206b3d3c0293bcc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:31 2009 +0200"
      },
      "message": "ide-tape: use single continuous buffer\n\nImpact: simpler buffer allocation and handling, kills OOM, fix DMA transfers\n\nide-tape has its own multiple buffer mechanism using struct\nidetape_bh.  It allocates buffer with decreasing order-of-two\nallocations so that it results in minimum number of segments.\nHowever, the implementation is quite complex and works in a way that\nno other block or ide driver works necessitating a lot of special case\nhandling.\n\nThe benefit this complex allocation scheme brings is questionable as\nPIO or DMA the number of segments (16 maximum) doesn\u0027t make any\nnoticeable difference and it also doesn\u0027t negate the need for multiple\norder allocation which can fail under memory pressure or high\nfragmentation although it does lower the highest order necessary by\none when the buffer size isn\u0027t power of two.\n\nAs the first step to remove the custom buffer management, this patch\nmakes ide-tape allocate single continous buffer.  The maximum order is\nfour.  I doubt the change would cause any trouble but if it ever\nmatters, it should be converted to regular sg mechanism like everyone\nelse and even in that case dropping custom buffer handling and moving\nto standard mechanism first make sense as an intermediate step.\n\nThis patch makes the first bh to contain the whole buffer and drops\nmulti bh handling code.  Following patches will make further changes.\n\nThis patch has the side effect of killing OOM triggered by allocation\npath and fixing DMA transfers.  Previously, bug in alloc path\ntriggered OOM on command issue and commands were passed to DMA engine\nwithout DMA-mapping all the segments.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "eb6a61bb9543aa54d62595e27206b3d3c0293bcc",
      "tree": "97d165ad28f62ff4754caff4ebde30e0506259d7",
      "parents": [
        "08f370f0a2fb223bf48d0bfa2a173be0393c19dc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:31 2009 +0200"
      },
      "message": "ide-atapi,tape,floppy: allow -\u003epc_callback() to change rq-\u003edata_len\n\nImpact: allow residual count implementation in -\u003epc_callback()\n\nrq-\u003edata_len has two duties - carrying the number of input bytes on\nissue and carrying residual count back to the issuer on completion.\nide-atapi completion callback -\u003epc_callback() is the right place to do\nthis but currently ide-atapi depends on rq-\u003edata_len carrying the\noriginal request size after calling -\u003epc_callback() to complete the pc\nrequest.\n\nThis patch makes ide_pc_intr(), ide_tape_issue_pc() and\nide_floppy_issue_pc() cache length to complete before calling\n-\u003epc_callback() so that it can modify rq-\u003edata_len as necessary.\n\nNote: As using rq-\u003edata_len for two purposes can make cases like this\n      incorrect in subtle ways, future changes will introduce separate\n      field for residual count.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "08f370f0a2fb223bf48d0bfa2a173be0393c19dc",
      "tree": "1e9af2e0941f1c8bd590f32c342676763f451046",
      "parents": [
        "765139ef5f1a4b1d5cb1f1a7a12de7ee61f6500f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 08:46:02 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:31 2009 +0200"
      },
      "message": "ide-tape,floppy: fix failed command completion after request sense\n\nImpact: fix infinite retry loop\n\nAfter a command failed, ide-tape and floppy inserts REQUEST_SENSE in\nfront of the failed command and according to the result, sets\npc-\u003eretries, flags and errors.  After REQUEST_SENSE is complete, the\nfailed command is again at the front of the queue and if the verdict\nwas to terminate the request, the issue functions tries to complete it\ndirectly by calling drive-\u003epc_callback() and returning ide_stopped.\n\nHowever, drive-\u003epc_callback() doesn\u0027t complete a request.  It only\nprepares for completion of the request.  As a result, this creates an\ninfinite loop where the failed request is retried perpetually.\n\nFix it by actually ending the request by calling ide_complete_rq().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "765139ef5f1a4b1d5cb1f1a7a12de7ee61f6500f",
      "tree": "cced409300ad193c7a3d9203441834c629cfcb7e",
      "parents": [
        "02e7cf8f848841ca21864ccd019e480b73c323b7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:43 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:30 2009 +0200"
      },
      "message": "ide-pm: don\u0027t abuse rq-\u003edata\n\nImpact: cleanup rq-\u003edata usage\n\nide-pm uses rq-\u003edata to carry pointer to struct request_pm_state\nthrough request queue and rq-\u003especial is used to carray pointer to\nlocal struct ide_cmd, which isn\u0027t necessary.  Use rq-\u003especial for\nrequest_pm_state instead and use local ide_cmd in\nide_start_power_step().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "02e7cf8f848841ca21864ccd019e480b73c323b7",
      "tree": "eb8b88b0b253f7063bfbee063df817fbac6eb60f",
      "parents": [
        "068753203e6cd085664a62e0fc0636e19b148a12"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:30 2009 +0200"
      },
      "message": "ide-cd,atapi: use bio for internal commands\n\nImpact: unify request data buffer handling\n\nrq-\u003edata is used mostly to pass kernel buffer through request queue\nwithout using bio.  There are only a couple of places which still do\nthis in kernel and converting to bio isn\u0027t difficult.\n\nThis patch converts ide-cd and atapi to use bio instead of rq-\u003edata\nfor request sense and internal pc commands.  With previous change to\nunify sense request handling, this is relatively easily achieved by\nadding blk_rq_map_kern() during sense_rq prep and PC issue.\n\nIf blk_rq_map_kern() fails for sense, the error is deferred till sense\nissue and aborts the failed command which triggered the sense.  Note\nthat this is a slim possibility as sense prep is done on each command\nissue, so for the above condition to actually trigger, all preps since\nthe last sense issue till the issue of the request which would require\na sense should fail.\n\n* do_request functions might sleep now.  This should be okay as ide\n  request_fn - do_ide_request() - is invoked only from make_request\n  and plug work.  Make sure this is the case by adding might_sleep()\n  to do_ide_request().\n\n* Functions which access the read sense data before the sense request\n  is complete now should access bio_data(sense_rq-\u003ebio) as the sense\n  buffer might have been copied during blk_rq_map_kern().\n\n* ide-tape updated to map sg.\n\n* cdrom_do_block_pc() now doesn\u0027t have to deal with REQ_TYPE_ATA_PC\n  special case.  Simplified.\n\n* tp_ops-\u003eoutput/input_data path dropped from ide_pc_intr().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "068753203e6cd085664a62e0fc0636e19b148a12",
      "tree": "d3eec62f2ecd5524c89bb7c8d4f482e93a4cc196",
      "parents": [
        "c457ce874a0f3dfa3d5e9f2309789f6f34e24325"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@googlemail.com",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:30 2009 +0200"
      },
      "message": "ide-atapi: convert ide-{floppy,tape} to using preallocated sense buffer\n\nSince we\u0027re issuing REQ_TYPE_SENSE now we need to allow those types of\nrqs in the -\u003edo_request callbacks. As a future improvement, sense_len\nassignment might be unified across all ATAPI devices. Borislav to\ncheck with specs and test.\n\nAs a result, get rid of ide_queue_pc_head() and\ndrive-\u003erequest_sense_rq.\n\ntj: * Init request sense ide_atapi_pc from sense request.  In the\n      longer timer, it would probably better to fold\n      ide_create_request_sense_cmd() into its only current user -\n      ide_floppy_get_format_progress().\n\n    * ide_retry_pc() no longer takes @disk.\n\nCC: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCC: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "c457ce874a0f3dfa3d5e9f2309789f6f34e24325",
      "tree": "bd6a66e463d2360c9a6fbbfbad085935c91c4ddc",
      "parents": [
        "e69d800f7e8797a8e3423380ee9d8ca1cb90c388"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@googlemail.com",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:30 2009 +0200"
      },
      "message": "ide-cd: convert to using generic sense request\n\nPreallocate a sense request in the -\u003edo_request method and reinitialize\nit only on demand, in case it\u0027s been consumed in the IRQ handler path.\nThe reason for this is that we don\u0027t want to be mapping rq to bio in\nthe IRQ path and introduce all kinds of unnecessary hacks to the block\nlayer.\n\ntj: * Both user and kernel PC requests expect sense data to be stored\n      in separate storage other than drive-\u003esense_data.  Copy sense\n      data to rq-\u003esense on completion if rq-\u003esense is not NULL.  This\n      fixes bogus sense data on PC requests.\n\nAs a result, remove cdrom_queue_request_sense.\n\nCC: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCC: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e69d800f7e8797a8e3423380ee9d8ca1cb90c388",
      "tree": "4f2241b44bf56db7e8f977b742a5e56f53424596",
      "parents": [
        "1f181d2b1569dfb88a584a6e1847e9e1c7645951"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "petkovbb@googlemail.com",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:30 2009 +0200"
      },
      "message": "ide: add helpers for preparing sense requests\n\nThis is in preparation of removing the queueing of a sense request out\nof the IRQ handler path.\n\nUse struct request_sense as a general sense buffer for all ATAPI\ndevices ide-{floppy,tape,cd}.\n\ntj: * blk_get_request(__GFP_WAIT) can\u0027t be called from do_request() as\n      it can cause deadlock.  Converted to use inline struct request\n      and blk_rq_init().\n\n    * Added xfer / cdb len selection depending on device type.\n\n    * All sense prep logics folded into ide_prep_sense() which never\n      fails.\n\n    * hwif-\u003erq clearing and sense_rq used handling moved into\n      ide_queue_sense_rq().\n\n    * blk_rq_map_kern() conversion is moved to later patch.\n\nCC: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCC: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "1f181d2b1569dfb88a584a6e1847e9e1c7645951",
      "tree": "7a72aa199dddc8ea39cc424bb2c21f34e58089df",
      "parents": [
        "ac0b0113ddbab3ed2388132d368c97292f9f3c84"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:29 2009 +0200"
      },
      "message": "ide-cd: don\u0027t abuse rq-\u003ebuffer\n\nImpact: rq-\u003ebuffer usage cleanup\n\nide-cd uses rq-\u003ebuffer to carry pointer to the original request when\nissuing REQUEST_SENSE.  Use rq-\u003especial instead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ac0b0113ddbab3ed2388132d368c97292f9f3c84",
      "tree": "78a955c9169a03ec364e4021c0ca929c7424ff7a",
      "parents": [
        "d868ca24302e99a0e8a86071ca2c66273edf97d9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:29 2009 +0200"
      },
      "message": "ide-atapi: don\u0027t abuse rq-\u003ebuffer\n\nImpact: rq-\u003ebuffer usage cleanup\n\nide-atapi uses rq-\u003ebuffer as private opaque value for internal special\nrequests.  rq-\u003especial isn\u0027t used for these cases (the only case where\nrq-\u003especial is used is for ide-tape rw requests).  Use rq-\u003especial\ninstead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d868ca24302e99a0e8a86071ca2c66273edf97d9",
      "tree": "447a39c6e1880f16ff329b9014471945a9db0e22",
      "parents": [
        "8968932e54db35cf9d69cfbbd50c26dfaaa586c7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:29 2009 +0200"
      },
      "message": "ide-taskfile: don\u0027t abuse rq-\u003ebuffer\n\nImpact: rq-\u003ebuffer usage cleanup\n\nide_raw_taskfile() directly uses rq-\u003ebuffer to carry pointer to the\ndata buffer.  This complicates both block interface and ide backend\nrequest handling.  Use blk_rq_map_kern() instead and drop special\nhandling for REQ_TYPE_ATA_TASKFILE from ide_map_sg().\n\nNote that REQ_RW setting is moved upwards as blk_rq_map_kern() uses it\nto initialize bio rw flag.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8968932e54db35cf9d69cfbbd50c26dfaaa586c7",
      "tree": "3ed9e5441de92603ad60755b7f0a6129eef17c7d",
      "parents": [
        "59a4f6f355fc718581ddcf1bb45a469d4756c035"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:42 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:29 2009 +0200"
      },
      "message": "ide-floppy: block pc always uses bio\n\nImpact: remove unnecessary code path\n\nBlock pc requests always use bio and rq-\u003edata is always NULL.  No need\nto worry about !rq-\u003ebio cases in idefloppy_block_pc_cmd().  Note that\nide-atapi uses ide_pio_bytes() for bio PIO transfer which handle sg\nfine.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "59a4f6f355fc718581ddcf1bb45a469d4756c035",
      "tree": "4593ab2fdf3a8521a63c07b47c717c1e6d84e6ff",
      "parents": [
        "214ae19104141404f18ad6651752eb38e3dd584e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:41 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:29 2009 +0200"
      },
      "message": "ide-cd: clear sense buffer before issuing request sense\n\nImpact: code simplification\n\nide_cd_request_sense_fixup() clears the tail of the sense buffer if\nthe device didn\u0027t completely fill it.  This patch makes\ncdrom_queue_request_sense() clear the sense buffer before issuing the\ncommand instead of clearing it afterwards.  This simplifies code and\neases future changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "214ae19104141404f18ad6651752eb38e3dd584e",
      "tree": "90e7df7b0cac3fb374206eb6ee2bfe236bd8d1f8",
      "parents": [
        "b2963ac1738542d30305d7e12c8c078a383a425c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:41 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:29 2009 +0200"
      },
      "message": "ide kill unused ide_cmd-\u003especial\n\nImpact: removal of unused field\n\nNo one uses ide_cmd-\u003especial anymore.  Kill it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    }
  ],
  "next": "b2963ac1738542d30305d7e12c8c078a383a425c"
}
