)]}'
{
  "log": [
    {
      "commit": "c055f5b2614b4f758ae6cc86733f31fa4c2c5844",
      "tree": "9c4e094c66454e855c52da7e37c6c7fa73a4bfe4",
      "parents": [
        "3fd9952df4964fac7d5868ba48eadcc9dae3ba46"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun May 01 09:42:07 2011 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Tue May 03 15:30:00 2011 -0500"
      },
      "message": "[SCSI] fix oops in scsi_run_queue()\n\nThe recent commit closing the race window in device teardown:\n\ncommit 86cbfb5607d4b81b1a993ff689bbd2addd5d3a9b\nAuthor: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nDate:   Fri Apr 22 10:39:59 2011 -0500\n\n    [SCSI] put stricter guards on queue dead checks\n\nis causing a potential NULL deref in scsi_run_queue() because the\nq-\u003equeuedata may already be NULL by the time this function is called.\nSince we shouldn\u0027t be running a queue that is being torn down, simply\nadd a NULL check in scsi_run_queue() to forestall this.\n\nTested-by: Jim Schutt \u003cjaschut@sandia.gov\u003e\nCc: stable@kernel.org\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "c21e6beba8835d09bb80e34961430b13e60381c5",
      "tree": "cdf6f6d40130b95e641ab5db1de0f6ecc179054a",
      "parents": [
        "5f45c69589b7d2953584e6cd0b31e35dbe960ad0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 19 13:32:46 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 19 13:32:46 2011 +0200"
      },
      "message": "block: get rid of QUEUE_FLAG_REENTER\n\nWe are currently using this flag to check whether it\u0027s safe\nto call into -\u003erequest_fn(). If it is set, we punt to kblockd.\nBut we get a lot of false positives and excessive punts to\nkblockd, which hurts performance.\n\nThe only real abuser of this infrastructure is SCSI. So export\nthe async queue run and convert SCSI over to use that. There\u0027s\nroom for improvement in that SCSI need not always use the async\ncall, but this fixes our performance issue and they can fix that\nup in due time.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "24ecfbe27f65563909b14492afda2f1c21f7c044",
      "tree": "a7e51d903c400d0925f87be5f3069a5a44e0af24",
      "parents": [
        "4521cc4ed5173f92714f6999a69910c3385fed68"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 18 11:41:33 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Apr 18 11:41:33 2011 +0200"
      },
      "message": "block: add blk_run_queue_async\n\nInstead of overloading __blk_run_queue to force an offload to kblockd\nadd a new blk_run_queue_async helper to do it explicitly.  I\u0027ve kept\nthe blk_queue_stopped check for now, but I suspect it\u0027s not needed\nas the check we do when the workqueue items runs should be enough.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "c55d267de274d308927b60c3e740c1a826832317",
      "tree": "21b53a8c725d9f9650f60d94b349459d5b8dae10",
      "parents": [
        "61ef46fd45c3c62dc7c880a45dd2aa841b9af8fb",
        "bc898c97f7ba24def788d9f80786cf028a197122"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 17 17:54:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 17 17:54:40 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (170 commits)\n  [SCSI] scsi_dh_rdac: Add MD36xxf into device list\n  [SCSI] scsi_debug: add consecutive medium errors\n  [SCSI] libsas: fix ata list corruption issue\n  [SCSI] hpsa: export resettable host attribute\n  [SCSI] hpsa: move device attributes to avoid forward declarations\n  [SCSI] scsi_debug: Logical Block Provisioning (SBC3r26)\n  [SCSI] sd: Logical Block Provisioning update\n  [SCSI] Include protection operation in SCSI command trace\n  [SCSI] hpsa: fix incorrect PCI IDs and add two new ones (2nd try)\n  [SCSI] target: Fix volume size misreporting for volumes \u003e 2TB\n  [SCSI] bnx2fc: Broadcom FCoE offload driver\n  [SCSI] fcoe: fix broken fcoe interface reset\n  [SCSI] fcoe: precedence bug in fcoe_filter_frames()\n  [SCSI] libfcoe: Remove stale fcoe-netdev entries\n  [SCSI] libfcoe: Move FCOE_MTU definition from fcoe.h to libfcoe.h\n  [SCSI] libfc: introduce __fc_fill_fc_hdr that accepts fc_hdr as an argument\n  [SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs\n  [SCSI] Revert \"[SCSI] libfc: fix exchange being deleted when the abort itself is timed out\"\n  [SCSI] libfc: Fixing a memory leak when destroying an interface\n  [SCSI] megaraid_sas: Version and Changelog update\n  ...\n\nFix up trivial conflicts due to whitespace differences in\ndrivers/scsi/libsas/{sas_ata.c,sas_scsi_host.c}\n"
    },
    {
      "commit": "c98a0eb0e90d1caa8a92913cd45462102cbd5eaf",
      "tree": "2a25be17b0d2806adb00f7c879e86811cc10071a",
      "parents": [
        "72f7d322fd60ce1a0579136dec7b26b0801ded4b"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Mar 08 02:07:15 2011 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Mar 14 18:37:34 2011 -0500"
      },
      "message": "[SCSI] sd: Logical Block Provisioning update\n\nSBC3r26 contains many changes to the Logical Block Provisioning\ninterfaces (formerly known as Thin Provisioning ditto). This patch\nimplements support for both the old and new schemes using the same\nheuristic as before (whether the LBP VPD page is present).\n\nThe new code also allows the provisioning mode (i.e. choice of command)\nto be overridden on a per-device basis via sysfs. Two additional modes\nare supported in this version:\n\n - WRITE SAME(10) with the UNMAP bit set\n\n - WRITE SAME(10) without the UNMAP bit set. This allows us to support\n   devices that predate the TP/LBP enhancements in SBC3 and which work\n   by way zero-detection\n\nSwitching between modes has been consolidated in a helper function that\nalso updates the block layer topology according to the limitations of\nthe chosen command.\n\nI experimented with trying WRITE SAME(16) if UNMAP fails, WRITE SAME(10)\nif WRITE SAME(16) fails, etc. but found several devices that got\ncranky. So for now we\u0027ll disable discard if one of the commands\nfail. The user still has the option of selecting a different mode in\nsysfs.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "72f7d322fd60ce1a0579136dec7b26b0801ded4b",
      "tree": "a1b6bbe30bcff290018ec9618128e4f82012dd29",
      "parents": [
        "9143a9612277abc6e4ddced2bc54a120734834c6"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Mar 08 02:03:59 2011 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Mar 14 18:36:02 2011 -0500"
      },
      "message": "[SCSI] Include protection operation in SCSI command trace\n\nWhen debugging DIF/DIX it is very helpful to be able to see which DIX\noperation is associated with the scsi_cmnd. Include the protection op in\nthe SCSI command trace.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "a488e74976bf0a9bccecdd094378394942dacef1",
      "tree": "94b69a2dd1e7126b83e311dc7c85def32ecde6dd",
      "parents": [
        "0a41e90bb7c931fd53d73ea770f5b251af6c91ce"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Apr 16 21:13:15 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:45:54 2011 +0100"
      },
      "message": "scsi: convert to blk_delay_queue()\n\nIt was always abuse to reuse the plugging infrastructure for this,\nconvert it to the (new) real API for delaying queueing a bit. A\ndefault delay of 3 msec is defined, to match the previous\nbehaviour.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "1654e7411a1ad4999fe7890ef51d2a2bbb1fcf76",
      "tree": "c8071cf8cc1aef9e776697b72aaca5a22a47c3d7",
      "parents": [
        "291d24f6d9e7bbef81454fade8a44720665c7302"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 02 08:48:05 2011 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 02 08:48:05 2011 -0500"
      },
      "message": "block: add @force_kblockd to __blk_run_queue()\n\n__blk_run_queue() automatically either calls q-\u003erequest_fn() directly\nor schedules kblockd depending on whether the function is recursed.\nblk-flush implementation needs to be able to explicitly choose\nkblockd.  Add @force_kblockd.\n\nAll the current users are converted to specify %false for the\nparameter and this patch doesn\u0027t introduce any behavior change.\n\nstable: This is prerequisite for fixing ide oops caused by the new\n        blk-flush implementation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "63583cca745f440167bf27877182dc13e19d4bcf",
      "tree": "c1eb3ec5d35cd71c6373e82992710c91f2cb8bdd",
      "parents": [
        "7a1e9d829f8bd821466c5ea834ad6f378740d2be"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Jan 18 10:13:11 2011 +0100"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Feb 12 10:33:08 2011 -0600"
      },
      "message": "[SCSI] Add detailed SCSI I/O errors\n\nInstead of just passing \u0027EIO\u0027 for any I/O error we should be\nnotifying the upper layers with more details about the cause\nof this error.\n\nUpdate the possible I/O errors to:\n\n- ENOLINK: Link failure between host and target\n- EIO: Retryable I/O error\n- EREMOTEIO: Non-retryable I/O error\n- EBADE: I/O error restricted to the I_T_L nexus\n\n\u0027Retryable\u0027 in this context means that an I/O error _might_ be\nrestricted to the I_T_L nexus (vulgo: path), so retrying on another\nnexus / path might succeed.\n\n\u0027Non-retryable\u0027 in general refers to a target failure, so this\nerror will always be generated regardless of the I_T_L nexus\nit was send on.\n\nI/O errors restricted to the I_T_L nexus might be retried\non another nexus / path, but they should _not_ be queued\nif no paths are available.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "da40d036fd716f0efb2917076220814b1e927ae1",
      "tree": "567893573a48e2954d82421e77606034d3b32f84",
      "parents": [
        "aa58abc20fa85328a9f048e2626c0893691ff284",
        "c32e061fa19893ce4acf95d97d5613a161f0f1b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:47:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:47:02 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (147 commits)\n  [SCSI] arcmsr: fix write to device check\n  [SCSI] lpfc: lower stack use in lpfc_fc_frame_check\n  [SCSI] eliminate an unnecessary local variable from scsi_remove_target()\n  [SCSI] libiscsi: use bh locking instead of irq with session lock\n  [SCSI] libiscsi: do not take host lock in queuecommand\n  [SCSI] be2iscsi: fix null ptr when accessing task hdr\n  [SCSI] be2iscsi: fix gfp use in alloc_pdu\n  [SCSI] libiscsi: add more informative failure message during iscsi scsi eh\n  [SCSI] gdth: Add missing call to gdth_ioctl_free\n  [SCSI] bfa: remove unused defintions and misc cleanups\n  [SCSI] bfa: remove inactive functions\n  [SCSI] bfa: replace bfa_assert with WARN_ON\n  [SCSI] qla2xxx: Use sg_next to fetch next sg element while walking sg list.\n  [SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout.\n  [SCSI] qla2xxx: Remove code to not reset ISP82xx on failure.\n  [SCSI] qla2xxx: Display mailbox register 4 during 8012 AEN for ISP82XX parts.\n  [SCSI] qla2xxx: Don\u0027t perform a BIG_HAMMER if Get-ID (0x20) mailbox command fails on CNAs.\n  [SCSI] qla2xxx: Remove redundant module parameter permission bits\n  [SCSI] qla2xxx: Add sysfs node for displaying board temperature.\n  [SCSI] qla2xxx: Code cleanup to remove unwanted comments and code.\n  ...\n"
    },
    {
      "commit": "fd01a6632da253210c3dbc7814bc6eceda96623d",
      "tree": "d3dff6d44978a54f4c6272c570a478740db9f8c8",
      "parents": [
        "db422318cbca55168cf965f655471dbf8be82433"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Dec 16 14:26:37 2010 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Tue Dec 21 12:37:28 2010 -0600"
      },
      "message": "[SCSI] fix the return value of scsi_target_queue_read()\n\nIt seems that zero should be returned if scsi_target_is_busy(starget) is\ntrue, no matter if sdev is on the starved list.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "7f8635cc9e66a26d7280ba680b044fa2f65104af",
      "tree": "0d8506e86d07e15c473aca1a09af7ad6ff7d8b49",
      "parents": [
        "3cb50ddf97a0a1ca4c68bc12fa1e727a6b45fbf2",
        "0fc13c8995cd96f4123de400c71c223d80400ed9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 20 09:19:46 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 20 09:19:46 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  cciss: fix cciss_revalidate panic\n  block: max hardware sectors limit wrapper\n  block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead\n  blk-throttle: Correct the placement of smp_rmb()\n  blk-throttle: Trim/adjust slice_end once a bio has been dispatched\n  block: check for proper length of iov entries earlier in blk_rq_map_user_iov()\n  drbd: fix for spin_lock_irqsave in endio callback\n  drbd: don\u0027t recvmsg with zero length\n"
    },
    {
      "commit": "e692cb668fdd5a712c6ed2a2d6f2a36ee83997b4",
      "tree": "accf682fe5e1388f305b5fc364a931dfda5f3fb9",
      "parents": [
        "04a6b516cdc6efc2500b52a540cf65be8c5aaf9e"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Wed Dec 01 19:41:49 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Dec 17 08:35:53 2010 +0100"
      },
      "message": "block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead\n\nWhen stacking devices, a request_queue is not always available. This\nforced us to have a no_cluster flag in the queue_limits that could be\nused as a carrier until the request_queue had been set up for a\nmetadevice.\n\nThere were several problems with that approach. First of all it was up\nto the stacking device to remember to set queue flag after stacking had\ncompleted. Also, the queue flag and the queue limits had to be kept in\nsync at all times. We got that wrong, which could lead to us issuing\ncommands that went beyond the max scatterlist limit set by the driver.\n\nThe proper fix is to avoid having two flags for tracking the same thing.\nWe deprecate QUEUE_FLAG_CLUSTER and use the queue limit directly in the\nblock layer merging functions. The queue_limit \u0027no_cluster\u0027 is turned\ninto \u0027cluster\u0027 to avoid double negatives and to ease stacking.\nClustering defaults to being enabled as before. The queue flag logic is\nremoved from the stacking function, and explicitly setting the cluster\nflag is no longer necessary in DM and MD.\n\nReported-by: Ed Lin \u003ced.lin@promise.com\u003e\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9f8a2c23c6c1140f515f601265c4dff7522110b7",
      "tree": "6defb41e4b129c3772e0c6d40b5e8e9a29bea7f0",
      "parents": [
        "638428ece619495edc9579b1e21493eb00f9687c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 08 20:57:40 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Dec 16 17:53:39 2010 +0100"
      },
      "message": "scsi: replace sr_test_unit_ready() with scsi_test_unit_ready()\n\nThe usage of TUR has been confusing involving several different\ncommits updating different parts over time.  Currently, the only\ndifferences between scsi_test_unit_ready() and sr_test_unit_ready()\nare,\n\n* scsi_test_unit_ready() also sets sdev-\u003echanged on NOT_READY.\n\n* scsi_test_unit_ready() returns 0 if TUR ended with UNIT_ATTENTION or\n  NOT_READY.\n\nDue to the above two differences, sr is using its own\nsr_test_unit_ready(), but sd - the sole user of the above extra\nhandling - doesn\u0027t even need them.\n\nWhere scsi_test_unit_ready() is used in sd_media_changed(), the code\nis looking for device ready w/ media present state which is true iff\nTUR succeeds w/o sense data or UA, and when the device is not ready\nfor whatever reason sd_media_changed() explicitly marks media as\nmissing so there\u0027s no reason to set sdev-\u003echanged automatically from\nscsi_test_unit_ready() on NOT_READY.\n\nDrop both special handlings from scsi_test_unit_ready(), which makes\nit equivalant to sr_test_unit_ready(), and replace\nsr_test_unit_ready() with scsi_test_unit_ready().  Also, drop the\nunnecessary explicit NOT_READY check from sd_media_changed().\nChecking return value is enough for testing device readiness.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "459dbf72e4d2b4aa13620e6b70d54f098547bf13",
      "tree": "c3cdd3b69a95cba555974a72710a9aaa0b13183a",
      "parents": [
        "5da61410054d125e63aeab9cc7a11874a69465c0"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Nov 17 10:10:57 2010 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Dec 09 09:41:16 2010 -0600"
      },
      "message": "[SCSI] Eliminate error handler overload of the SCSI serial number\n\nThe error handler is using the test cmd-\u003eserial_number \u003d\u003d 0 in the\nabort routines to signal that the command to be aborted has already\ncompleted normally.  This design was to close a race window in the\noriginal error handler where a command could go through the normal\ncompletion routines after it timed out but before error handling was\nstarted.\n\nMike Anderson pointed out that when we converted our timeout and\nsoftirq completions, we picked up atomicity here because the block\nlayer now mediates this with the REQ_ATOM_COMPLETE flag and guarantees\nthat *either* the command times out or our done routine is called, but\nensures we can\u0027t get both occurring.  That makes the serial number\nzero check redundant and it can be removed.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "986fe6c7f50974e871b8ab5a800f5310ea25b361",
      "tree": "01b886bc09696c32bb1ed13786593d5b5b351e93",
      "parents": [
        "fb5a638995758cfe8408cc4ea452ea9022b98fc7"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Oct 06 03:10:59 2010 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Oct 25 09:48:32 2010 -0500"
      },
      "message": "[SCSI] Fix regressions in scsi_internal_device_block\n\nDeleting a SCSI device on a blocked fc_remote_port (before\nfast_io_fail_tmo fires) results in a hanging thread:\n\n  STACK:\n  0 schedule+1108 [0x5cac48]\n  1 schedule_timeout+528 [0x5cb7fc]\n  2 wait_for_common+266 [0x5ca6be]\n  3 blk_execute_rq+160 [0x354054]\n  4 scsi_execute+324 [0x3b7ef4]\n  5 scsi_execute_req+162 [0x3b80ca]\n  6 sd_sync_cache+138 [0x3cf662]\n  7 sd_shutdown+138 [0x3cf91a]\n  8 sd_remove+112 [0x3cfe4c]\n  9 __device_release_driver+124 [0x3a08b8]\n10 device_release_driver+60 [0x3a0a5c]\n11 bus_remove_device+266 [0x39fa76]\n12 device_del+340 [0x39d818]\n13 __scsi_remove_device+204 [0x3bcc48]\n14 scsi_remove_device+66 [0x3bcc8e]\n15 sysfs_schedule_callback_work+50 [0x260d66]\n16 worker_thread+622 [0x162326]\n17 kthread+160 [0x1680b0]\n18 kernel_thread_starter+6 [0x10aaea]\n\nDuring the delete, the SCSI device is in moved to SDEV_CANCEL.  When\nthe FC transport class later calls scsi_target_unblock, this has no\neffect, since scsi_internal_device_unblock ignores SCSI devics in this\nstate.\n\nIt looks like all these are regressions caused by:\n5c10e63c943b4c67561ddc6bf61e01d4141f881f\n[SCSI] limit state transitions in scsi_internal_device_unblock\n\nFix by rejecting offline and cancel in the state transition.\n\nSigned-off-by: Christof Schmitt \u003cchristof.schmitt@de.ibm.com\u003e\n[jejb: Original patch by Christof Schmitt, modified by Mike Christie]\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e",
      "tree": "f42fd892495bfc4cbb740d06b016d267c9c42d00",
      "parents": [
        "4f3a29dadaf999a273f1e7fe2476595d0283eef3",
        "b4627321e18582dcbdeb45d77df29d3177107c65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block: (39 commits)\n  cfq-iosched: Fix a gcc 4.5 warning and put some comments\n  block: Turn bvec_k{un,}map_irq() into static inline functions\n  block: fix accounting bug on cross partition merges\n  block: Make the integrity mapped property a bio flag\n  block: Fix double free in blk_integrity_unregister\n  block: Ensure physical block size is unsigned int\n  blkio-throttle: Fix possible multiplication overflow in iops calculations\n  blkio-throttle: limit max iops value to UINT_MAX\n  blkio-throttle: There is no need to convert jiffies to milli seconds\n  blkio-throttle: Fix link failure failure on i386\n  blkio: Recalculate the throttled bio dispatch time upon throttle limit change\n  blkio: Add root group to td-\u003etg_list\n  blkio: deletion of a cgroup was causes oops\n  blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING\u003dn\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: revert bad fix for memory hotplug causing bounces\n  Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: Prevent hang_check firing during long I/O\n  cfq: improve fsync performance for small files\n  ...\n\nFix up trivial conflicts due to __rcu sparse annotation in include/linux/genhd.h\n"
    },
    {
      "commit": "13f05c8d8e98bbdce89158bfdb2e380940695a88",
      "tree": "055215e7e2b1bdc684ead64daa61b30b35eaa3c5",
      "parents": [
        "c8bf1336824ebd698d37b71763e1c43190f2229a"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Sep 10 20:50:10 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Fri Sep 10 20:50:10 2010 +0200"
      },
      "message": "block/scsi: Provide a limit on the number of integrity segments\n\nSome controllers have a hardware limit on the number of protection\ninformation scatter-gather list segments they can handle.\n\nIntroduce a max_integrity_segments limit in the block layer and provide\na new scsi_host_template setting that allows HBA drivers to provide a\nvalue suitable for the hardware.\n\nAdd support for honoring the integrity segment limit when merging both\nbios and requests.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.home.kernel.dk\u003e\n"
    },
    {
      "commit": "3a5c19c23db65a554f2e4f5df5f307c668277056",
      "tree": "eb89ea587d49af31eb21ba2c08824c0b9cf056b0",
      "parents": [
        "7e443312403ad1ff40ef3177590e96d1fe747c79"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Aug 16 10:06:26 2010 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 09 09:58:18 2010 -0500"
      },
      "message": "[SCSI] fix use-after-free in scsi_init_io()\n\nwe\u0027re using a pointer through a freed command to reset the request,\nwhich has shown up as an oops with slab poisoning:\n\nReported-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "d6e9fb46cd9e60946dc3e89ad8e32dd251dcc05d",
      "tree": "10660b30049be0d19fc57c880e06cd6d9f2a3ab7",
      "parents": [
        "85bc081f44d53e3ac268c59275cc3b9b5afae04a"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Aug 10 18:01:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:00 2010 -0700"
      },
      "message": "scsi: remove superfluous NULL pointer check from scsi_kill_request()\n\nDan\u0027s list included:\n\ndrivers/scsi/scsi_lib.c +1365 scsi_kill_request(9) warning: variable derefenced in initializer \u0027cmd\u0027\ndrivers/scsi/scsi_lib.c +1365 scsi_kill_request(9) warning: variable derefenced before check \u0027cmd\u0027\n\nWe dereference cmd (and possible OOPS if cmd \u003d\u003d NULL) before starting the\nrequest so just remove the superfluous debugging code altogether.\n\n[ bart: the potential NULL pointer dereference was finally fixed in\n  (much later than mine) commit 03b1470 but my patch is still valid ]\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Eugene Teo \u003ceteo@redhat.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "610a63498f7f366031a6327eaaa9963ffa110b2b",
      "tree": "8ea7f0c9e1e2f41ee09677909a3491adeee31799",
      "parents": [
        "9e094383b60066996fbc3b53891324e5d2ec858d"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Jul 08 10:16:17 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:28 2010 +0200"
      },
      "message": "scsi: fix discard page leak\n\nWe leak a page allocated for discard on some error conditions\n(e.g. scsi_prep_state_check returns BLKPREP_DEFER in\nscsi_setup_blk_pc_cmnd).\n\nWe unprep on requests that weren\u0027t prepped in the error path of\nscsi_init_io. It makes the error path to clean up scsi commands messy.\n\nLet\u0027s strictly apply the rule that we can\u0027t unprep on a request that\nwasn\u0027t prepped.\n\nCalling just scsi_put_command() in the error path of scsi_init_io() is\nenough. We don\u0027t set REQ_DONTPREP yet.\n\nscsi_setup_discard_cmnd can safely free a page on the error case with\nthe above rule.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "28018c242a4ec7017bbbf81d2d3952f820a27118",
      "tree": "03732bef20d0e4dad30d81d9b9ad9ffcf5a2e41c",
      "parents": [
        "e597cd09f711b28b8466ebdc2f12e55b44fa81e4"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Jul 01 19:49:17 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:23:47 2010 +0200"
      },
      "message": "block: implement an unprep function corresponding directly to prep\n\nReviewed-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "33659ebbae262228eef4e0fe990f393d1f0ed941",
      "tree": "fcb537f09359c8dad3a6f6e16dc4319562dc42cc",
      "parents": [
        "7e005f79791dcd58436c88ded4a7f5aed1b82147"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:17:56 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:17:56 2010 +0200"
      },
      "message": "block: remove wrappers for request type/flags\n\nRemove all the trivial wrappers for the cmd_type and cmd_flags fields in\nstruct requests.  This allows much easier grepping for different request\ntypes instead of unwinding through macros.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b1bf9368407ae7e89d8a005bb40beb70a41df539",
      "tree": "3815c8aab19c6c186736673c624fef5f3faab716",
      "parents": [
        "524df55725217b13d5a232fb5badb5846418ea0e",
        "4671a1322052425afa38fcb7980d2fd2bb0fc99b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block: (38 commits)\n  block: don\u0027t access jiffies when initialising io_context\n  cfq: remove 8 bytes of padding from cfq_rb_root on 64 bit builds\n  block: fix for \"Consolidate phys_segment and hw_segment limits\"\n  cfq-iosched: quantum check tweak\n  blktrace: perform cleanup after setup error\n  blkdev: fix merge_bvec_fn return value checks\n  cfq-iosched: requests \"in flight\" vs \"in driver\" clarification\n  cciss: Fix problem with scatter gather elements in the scsi half of the driver\n  cciss: eliminate unnecessary pointer use in cciss scsi code\n  cciss: do not use void pointer for scsi hba data\n  cciss: factor out scatter gather chain block mapping code\n  cciss: fix scatter gather chain block dma direction kludge\n  cciss: simplify scatter gather code\n  cciss: factor out scatter gather chain block allocation and freeing\n  cciss: detect bad alignment of scsi commands at build time\n  cciss: clarify command list padding calculation\n  cfq-iosched: rethink seeky detection for SSDs\n  cfq-iosched: rework seeky detection\n  block: remove padding from io_context on 64bit builds\n  block: Consolidate phys_segment and hw_segment limits\n  ...\n"
    },
    {
      "commit": "8a78362c4eefc1deddbefe2c7f38aabbc2429d6b",
      "tree": "c095d95af1aec0f9cee5975b1dcdc6bc1d17d401",
      "parents": [
        "086fa5ff0854c676ec333760f4c0154b3b242616"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:39 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Consolidate phys_segment and hw_segment limits\n\nExcept for SCSI no device drivers distinguish between physical and\nhardware segment limits.  Consolidate the two into a single segment\nlimit.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "086fa5ff0854c676ec333760f4c0154b3b242616",
      "tree": "ee63fb3c7c7d964bd799355b7cde18ba95f91f07",
      "parents": [
        "eb28d31bc97e6374d81f404da309401ffaed467b"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:38 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors\n\nThe block layer calling convention is blk_queue_\u003climit name\u003e.\nblk_queue_max_sectors predates this practice, leading to some confusion.\nRename the function to appropriately reflect that its intended use is to\nset max_hw_sectors.\n\nAlso introduce a temporary wrapper for backwards compability.  This can\nbe removed after the merge window is closed.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e7efe5932b1d3916c79326a4221693ea90a900e2",
      "tree": "37bee69043455a48a940ec9989b8e588d09cc245",
      "parents": [
        "5d7ebb9c7a04d29efce1099024944dfd94d9f63c"
      ],
      "author": {
        "name": "Douglas Gilbert",
        "email": "dgilbert@interlog.com",
        "time": "Sun Jan 03 13:51:15 2010 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Jan 18 10:48:16 2010 -0600"
      },
      "message": "[SCSI] skip sense logging for some ATA PASS-THROUGH cdbs\n\nFurther to the lsml thread titled:\n\"does scsi_io_completion need to dump sense data for ata pass through (ck_cond \u003d\n1) ?\"\n\nThis is a patch to skip logging when the sense data is\nassociated with a SENSE_KEY of \"RECOVERED_ERROR\" and the\nadditional sense code is \"ATA PASS-THROUGH INFORMATION\nAVAILABLE\". This only occurs with the SAT ATA PASS-THROUGH\ncommands when CK_COND\u003d1 (in the cdb). It indicates that\nthe sense data contains ATA registers.\n\nSmartmontools uses such commands on ATA disks connected via\nSAT. Periodic checks such as those done by smartd cause\nnuisance entries into logs that are:\n    - neither errors nor warnings\n    - pointless unless the cdb that caused them are also logged\n\nSigned-off-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "63c43b0ec1765b74c734d465ba6345ef4f434df8",
      "tree": "64cd3d33223b4c4bde7a0638abeb0e897d1aa0ac",
      "parents": [
        "f1053a7ca9ce095d95bcc1cf41684c5e4f3e7751"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Dec 15 17:25:43 2009 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun Jan 17 12:16:18 2010 -0600"
      },
      "message": "[SCSI] scsi_lib: Fix bug in completion of bidi commands\n\nBecause of the terrible structuring of scsi-bidi-commands\nit breaks some of the life time rules of a scsi-command.\nIt is now not allowed to free up the block-request before\ncleanup and partial deallocation of the scsi-command. (Which\nis not so for none bidi commands)\n\nThe right fix to this problem would be to make bidi command\na first citizen by allocating a scsi_sdb pointer at scsi command\njust like cmd-\u003eprot_sdb. The bidi sdb should be allocated/deallocated\nas part of the get/put_command (Again like the prot_sdb) and the\ncurrent decoupling of scsi_cmnd and blk-request should be kept.\n\nFor now make sure scsi_release_buffers() is called before the\ncall to blk_end_request_all() which might cause the suicide of\nthe block requests. At best the leak of bidi buffers, at worse\na crash, as there is a race between the existence of the bidi_request\nand the free of the associated bidi_sdb.\n\nThe reason this was never hit before is because only OSD has the potential\nof doing asynchronous bidi commands. (So does bsg but it is never used)\nAnd OSD clients just happen to do all their bidi commands synchronously, up\nuntil recently.\n\nCC: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "d8705f11d89cfabf4a9f0ea234d4809b22abb33e",
      "tree": "e1ce54ec1f01fc9d2f77fd9c730b87167ac02219",
      "parents": [
        "e339c1a7c09ef736dca7b3a4353c7742557d9f8f"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Nov 26 12:00:41 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Dec 10 08:54:15 2009 -0600"
      },
      "message": "[SCSI] Correctly handle thin provisioning write error\n\nA thin provisioned device may temporarily be out of sufficient\nallocation units to fulfill a write request.  In that case it will\nreturn a space allocation in progress error.  Wait a bit and retry the\nwrite.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "03b147083a2f9a2a3fbbd2505fa88ffa3c6ab194",
      "tree": "9d0005b45bfff8d9ec23857d4e317311d6875d1b",
      "parents": [
        "f619106bdd9d197c947f07108af57946f19a7f7e"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Sep 23 16:15:35 2009 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:51 2009 -0600"
      },
      "message": "[SCSI] scsi_lib: fix potential NULL dereference\n\nStanse found a potential NULL dereference in scsi_kill_request.\n\nInstead of triggering BUG() in \u0027if (unlikely(cmd \u003d\u003d NULL))\u0027 branch,\nthe kernel will Oops earlier on cmd dereference.\n\nMove the dereferences after the if.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "ad63082626f99651d261ccd8698ce4e997362f7e",
      "tree": "af5b75c5991ce3e932607d105f1019b9d237a7af",
      "parents": [
        "cce9c8aed7d3ac0a14815e99b4602ae6c854a0ba"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Mon Sep 28 15:50:52 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Oct 29 13:03:27 2009 -0400"
      },
      "message": "[SCSI] fix propogation of integrity errors\n\nWhen the Integrity check is done in scsi_io_completion it will\nset error to -EILSEQ. However, at this point error is no longer\nused, and blk_end_request_err has -EIO hardcoded.\n\nIt looks like there was just porting mistake with this patch\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003d3e695f89c5debb735e4ff051e9e58d8fb4e95110\nand we meant to send error upwards, so this patch changes the hard\ncoded EIO to the error variable.\n\nI have only boot tested this patch.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "355bbd8cb82e60a592f6cd86ce6dbe5677615cf4",
      "tree": "23678e50ad4687f1656edc972388ee8014e7b89d",
      "parents": [
        "39695224bd84dc4be29abad93a0ec232a16fc519",
        "746cd1e7e4a555ddaee53b19a46e05c9c61eaf09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 17:55:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 17:55:15 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.32\u0027 of git://git.kernel.dk/linux-2.6-block: (29 commits)\n  block: use blkdev_issue_discard in blk_ioctl_discard\n  Make DISCARD_BARRIER and DISCARD_NOBARRIER writes instead of reads\n  block: don\u0027t assume device has a request list backing in nr_requests store\n  block: Optimal I/O limit wrapper\n  cfq: choose a new next_req when a request is dispatched\n  Seperate read and write statistics of in_flight requests\n  aoe: end barrier bios with EOPNOTSUPP\n  block: trace bio queueing trial only when it occurs\n  block: enable rq CPU completion affinity by default\n  cfq: fix the log message after dispatched a request\n  block: use printk_once\n  cciss: memory leak in cciss_init_one()\n  splice: update mtime and atime on files\n  block: make blk_iopoll_prep_sched() follow normal 0/1 return convention\n  cfq-iosched: get rid of must_alloc flag\n  block: use interrupts disabled version of raise_softirq_irqoff()\n  block: fix comment in blk-iopoll.c\n  block: adjust default budget for blk-iopoll\n  block: fix long lines in block/blk-iopoll.c\n  block: add blk-iopoll, a NAPI like approach for block devices\n  ...\n"
    },
    {
      "commit": "da6c5c720c52cc717124f8f0830b710ea6a092fd",
      "tree": "f54c880aec9289895721e707d4b22e456b277127",
      "parents": [
        "80a761fd33cf812f771e212139157bf8f58d4b3f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 11 14:26:40 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:30 2009 +0200"
      },
      "message": "scsi,block: update SCSI to handle mixed merge failures\n\nUpdate scsi_io_completion() such that it only fails requests till the\nnext error boundary and retry the leftover.  This enables block layer\nto merge requests with different failfast settings and still behave\ncorrectly on errors.  Allow merge of requests of different failfast\nsettings.\n\nAs SCSI is currently the only subsystem which follows failfast status,\nthere\u0027s no need to worry about other block drivers for now.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Niel Lambrechts \u003cniel.lambrechts@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "002b1eb2c03ccec36bf6e7b719cccedf57d83402",
      "tree": "40d0c3f158aecbd614cc174f2b016cdeccf8c42f",
      "parents": [
        "6c10db72c94818573552fd71c89540da325efdfb"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sat May 23 11:45:07 2009 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Aug 22 17:51:51 2009 -0500"
      },
      "message": "[SCSI] Print failed commands\n\nWhen a request fails we print the sense data but not the actual command\nthat failed.  Add a printout of the operation + CDB for failed commands.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b391277a56b9eaaff4474339c703e574ed7fab5b",
      "tree": "81964fbb0a7582e110a0dc06b4ddfce8508c1bd3",
      "parents": [
        "24add1c4326ce5ca22e7af8b84bb113cd48efac9"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Jun 18 09:57:18 2009 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jun 21 12:01:27 2009 -0500"
      },
      "message": "sd, sr: fix Driver \u0027sd\u0027 needs updating message\n\nIf a SCSI ULD driver sets blk_queue_prep_rq(), it should clean it\nup itself on remove(), and not from the bus callbacks. This\nremoves the need to hook into bus-\u003eremove(), which should not\nbe used at the same time as driver-\u003eremove().\n\n[jejb: fix sdkp initialisation problem due to mismerge]\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "82681a318f9f028ea64e61f24bbd9ac535531921",
      "tree": "529b6a5b4fd040fb54b7672b1a224ebd47445876",
      "parents": [
        "3860c97bd60a4525bb62eb90e3e7d2f02662ac59",
        "8ebf975608aaebd7feb33d77f07ba21a6380e086"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jun 12 10:02:03 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jun 12 10:02:03 2009 -0500"
      },
      "message": "[SCSI] Merge branch \u0027linus\u0027\n\nConflicts:\n\tdrivers/message/fusion/mptsas.c\n\nfixed up conflict between req-\u003edata_len accessors and mptsas driver updates.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "5c10e63c943b4c67561ddc6bf61e01d4141f881f",
      "tree": "7b71f601bcf852159bae15a2cf6caa038d74e27d",
      "parents": [
        "b0d428adebe9f1232c72bf4c686a6f0eed047cc2"
      ],
      "author": {
        "name": "Takahiro Yasui",
        "email": "tyasui@redhat.com",
        "time": "Wed Apr 29 12:13:02 2009 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:05 2009 -0500"
      },
      "message": "[SCSI] limit state transitions in scsi_internal_device_unblock\n\nscsi timeout on two or more devices may cause extremely long execution\ntime for user applications because SDEV_OFFLINE state is changed to\nSDEV_RUNNING state during scsi error recovery procedures triggered by\na bus reset or a host reset of scsi LLD, and scsi timeout can happens\non the same devices many times.\n\nThis happens because scsi_internal_device_unblock() changes device\u0027s\nstate to SDEV_RUNNING even if a device in other states than SDEV_BLOCK,\nwhile the following two transitions are required in this function.\n\n  SDEV_BLOCK -\u003e SDEV_RUNNING\n  SDEV_CREATED_BLOCK -\u003e SDEV_CREATED\n\nOtherwise, it returns -EINVAL.\n\nSigned-off-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\n[matthew@wil.cx: supplied rewritten base for patch]\nSigned-off-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "e4b636366c00738b9609cda307014d71b1225b7f",
      "tree": "760b67b3624eda62e943e48ce93635c30a5b47bf",
      "parents": [
        "b9ed7252d219c1c663944bf03846eabb515dbe75",
        "279e677faa775ad16e75c32e1bf4a37f8158bc61"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.31\n\nConflicts:\n\tdrivers/block/hd.c\n\tdrivers/block/mg_disk.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ac36552a52a6ec8563ac0a109e2a0935673f4abb",
      "tree": "44e6801df41b1faf4cea903eeb8f6326315ee3e1",
      "parents": [
        "53674ac5a997a8eedbb2dfdc308b895170746c8b"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue May 19 19:54:09 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 19:54:09 2009 +0200"
      },
      "message": "scsi_lib: remove unused variable\n\nThe last request completion cleanup in scsi_lib left an unused\nthis_count variable in scsi_io_completion().\n(It was used before in a code segment that now uses blk_end_request_all())\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\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": "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": "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": "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": "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": "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": "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": "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": "b4efdd586bc08cdf5977cad0a90091f44546a930",
      "tree": "f76209d5cdc4c7dfd296a0c8c0ec6c192610600b",
      "parents": [
        "e832b3ca653895d479c872f995d0a31a0b0bdecd"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Apr 09 15:57:10 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 09:48:10 2009 -0500"
      },
      "message": "[SCSI] fix q-\u003elock not held warning when target is busy\n\nWe cannot call blk_plug_device from scsi_target_queue_ready\nbecause the q lock is not held. And we do not need to call\nit from there because when we return 0, the scsi_request_fn\nnot_ready handling will plug the queue for us if needed.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a9bddd74630b2a1f2dedc537417c372b2d9edc76",
      "tree": "d086a3d0770536bc0910ea9ad9eb4a35be273848",
      "parents": [
        "a2f5bfcf711aa72ad5587b533a1909334c2533a4"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Mar 30 16:55:51 2009 +0000"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:22:55 2009 -0500"
      },
      "message": "[SCSI] fix recovered error handling\n\nWe have a problem with recovered error handling in that any command\nwhich goes down as BLOCK_PC but which returns a sense code of RECOVERED\nERROR gets completed with -EIO.  For actual SG_IO commands, this doesn\u0027t\nmatter at all, since the error return code gets dropped in favour of\nreq-\u003eerrors which contain the SCSI completion code.\n\nHowever, if this command is part of the block system, then it will pay\nattention to the returned error code.  In particularly if a SYNCHRONIZE\nCACHE from a barrier command completes with RECOVERED ERROR, the\nresulting -EIO on the barrier causes block to error the request and\nreturn it to the filesystem.  Fix this by converting the -EIO for\nrecovered error to zero, plus remove the printing of this from sd and sr\nso the message isn\u0027t double printed.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f078727b250c2653fc9a564f15547c17ebac3f99",
      "tree": "60cbd84965cbebc6a2898aa7664c25977d128b46",
      "parents": [
        "26243043f207b3faa00594a33e10b2103205f27b"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sun Dec 14 01:23:45 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:10 2009 -0500"
      },
      "message": "[SCSI] remove scsi_req_map_sg\n\nNo one uses scsi_execute_async with data transfer now. We can remove\nscsi_req_map_sg.\n\nOnly scsi_eh_lock_door uses scsi_execute_async. scsi_eh_lock_door\ndoesn\u0027t handle sense and the callback. So we can remove\nscsi_io_context too.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "126c098296c8f96cf7f6ca0fdb47265ac7994f00",
      "tree": "59aa713000faab4aa075a52ee2c2be4bc4d3239c",
      "parents": [
        "4034cc68157bfa0b6622efe368488d3d3e20f4e6"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 19 21:48:54 2009 +0000"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Feb 21 20:29:38 2009 -0600"
      },
      "message": "[SCSI] fix ABORTED_COMMAND looping forever problem\n\nInstead of terminating after five retries, commands terminated by\nABORTED_COMMAND sense are retrying forever.  The problem was\nintroduced by:\n\ncommit b60af5b0adf0da24c673598c8d3fb4d4189a15ce\nAuthor: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nDate:   Mon Nov 3 15:56:47 2008 -0500\n\n    [SCSI] simplify scsi_io_completion()\n\nWhich introduced an error whereby ABORTED_COMMAND now gets erroneously\nretried in scsi_io_completion.  Fix this by returning the behaviour\nback to the default no retry.\n\nReported-by: Sitsofe Wheeler \u003csitsofe@yahoo.com\u003e\nTested-by: Sitsofe Wheeler \u003csitsofe@yahoo.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "79ed24297236b7430d6ce0a1511ff70cf5b6015a",
      "tree": "396b2696f4ec57851856702f27019a81a3aefecd",
      "parents": [
        "4be98c0ca304c8a47998b29a7993664f71791250"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Jan 06 13:15:20 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 07 15:15:44 2009 -0600"
      },
      "message": "[SCSI] scsi_lib: fix DID_RESET status problems\n\nAndrew Vaszquez said:\n\u003e There\u0027s a problem that is causing commands returned by the LLD with\n\u003e a DID_RESET status to be reissued with cleared cmd-\u003esdb data which\n\u003e in our tests are manifesting in firmware detected overruns.  Here\u0027s\n\u003e a snippet of a READ_10 scsi_cmnd upon completion by the storage\n\nThe problem is caused by:\n\ncommit b60af5b0adf0da24c673598c8d3fb4d4189a15ce\nAuthor: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nDate:   Mon Nov 3 15:56:47 2008 -0500\n\n    [SCSI] simplify scsi_io_completion()\n\nBecause scsi_release_buffers() is called before commands that go\nthrough the ACTION_RETRY and ACTION_DELAYED_RETRY legs are requeued.\nHowever, they\u0027re not re-prepared, so nothing ever reallocates the\nbuffer resources to them.  Fix this by releasing the buffers only if\nwe\u0027re not going to go down these legs (but scsi_release_buffers() on\nall legs including two in scsi_end_request(); this latter needs a\nspecial version __scsi_release_buffers() because the final one can be\ncalled after the request has been freed, so the bidi test in\nscsi_release_buffers(), which touches the request has to be skipped).\n\nReported-by: Andrew Vasquez \u003candrew.vasquez@qlogic.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "3e695f89c5debb735e4ff051e9e58d8fb4e95110",
      "tree": "febd0af71641b72a1c27115bc1b93c0e44cd11ea",
      "parents": [
        "4f5299ac4e3a03d5c596c00d726fa932c600609d"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sun Jan 04 03:04:31 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Jan 05 09:02:28 2009 -0600"
      },
      "message": "[SCSI] Fix error handling for DIF/DIX\n\npatch\n\ncommit b60af5b0adf0da24c673598c8d3fb4d4189a15ce\nAuthor: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nDate:   Mon Nov 3 15:56:47 2008 -0500\n\n    [SCSI] simplify scsi_io_completion()\n\nbroke DIX error handling.  Also, we are now using EILSEQ to indicate\nintegrity errors to the upper layers (as opposed to regular EIO\nfailures).  This allows filesystems to inspect buffers and decide\nwhether to retry the I/O.  Update scsi_io_completion() accordingly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4f5299ac4e3a03d5c596c00d726fa932c600609d",
      "tree": "ab303d64c6df361fff4531801eaaedd9c473ea42",
      "parents": [
        "a234b1103f7df35eacb1de7a9d15a636046e263b"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 10:42:21 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Jan 05 08:54:11 2009 -0600"
      },
      "message": "[SCSI] scsi_lib: don\u0027t decrement busy counters when inserting commands\n\nA bug was introduced by\n\ncommit b60af5b0adf0da24c673598c8d3fb4d4189a15ce\nAuthor: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nDate:   Mon Nov 3 15:56:47 2008 -0500\n\n    [SCSI] simplify scsi_io_completion()\n \nbecause the simplification uses scsi_queue_insert().  The problem with\nthis function is that it expects to be called from the completion path\nwhile the command is still outstanding, so it decrements the device\nand host busy counts to do the requeue.  The problem is that\nscsi_io_completion() is a path executed well after these counts have\n*already* been decremented, leading to a double decrement if the\ncommand goes down any error path leading to ACTION_DELAYED_RETRY.\n\nThe fix is to allow a private function __scsi_queue_insert() with a\nflag to say whether the busy counters should be decremented.  This is\nmade static to scsi_lib.c to discourage other use.\n\nReported-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "3dbf6a54046052d79743822c9206af191e582ab0",
      "tree": "15fd46062aa21ee2e1745c37de19267b90b0c689",
      "parents": [
        "fa9907810bf733ef48b0cd50023b03b78f983434"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Dec 15 10:31:28 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 10:57:41 2009 -0600"
      },
      "message": "[SCSI] Fix uninitialized variable error in scsi_io_completion\n\nThis patch (as1191) adds a missing \"default\" case in\nscsi_io_completion(), thereby fixing an \"uninitialized variable\"\nerror.  It also adds a missing newline to a log entry.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f4f4e47e4af6b02dd1c425b931c65d0165356e33",
      "tree": "1bca97ce56703d7a101674cf6bf0d28576cf7201",
      "parents": [
        "a528ab7a324f1dbb3598ae0ecd238ab7dd974294"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Dec 04 14:24:39 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:24 2008 -0600"
      },
      "message": "[SCSI] add residual argument to scsi_execute and scsi_execute_req\n\nscsi_execute() and scsi_execute_req() discard the residual length\ninformation. Some callers need it. This adds residual argument\n(optional) to scsi_execute and scsi_execute_req.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b60af5b0adf0da24c673598c8d3fb4d4189a15ce",
      "tree": "95981f6b1fd122c3a751cdb733ce0489a375c8aa",
      "parents": [
        "67e6d58d812ec3e95918266076d4c836cdec849a"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Nov 03 15:56:47 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:18 2008 -0600"
      },
      "message": "[SCSI] simplify scsi_io_completion()\n\nThis patch (as1142b) consolidates a lot of repetitious code in\nscsi_io_completion().  It also fixes a few comments.  Most\nimportantly, however, it clearly distinguishes among the three sorts\nof retries that can be done when a command fails to complete:\n\n\tUnprepare the request and resubmit it, so that a new\n\tcommand will be created for it.\n\n\tRequeue the request directly so that it will be retried\n\timmediately using the same command.\n\n\tRequeue the request so that it will be retried following\n\ta short delay.\n\n\tComplete the remainder of the request with an I/O error.\n\n[jejb: Updates\n     1. For several error conditions, we would now print the sense twice\n        in slightly different ways, so unify the location of sense\n        printing.\n     2. I added more descriptions to actual failure conditions for\n        better debugging\n     3. according to spec, ABORTED_COMMAND is supposed to be retried\n        (except on DIF failure).  Our old behaviour of erroring it looks\n        to be a bug.\n     4. I\u0027d prefer not to default initialise the action variable because\n        that ensures that every leg of the error handler has an\n        associated action and the compiler will warn if someone later\n        accidentally misses one or removes one.\n]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "02bd3499a3be984f1e88821c3ed252c8c49c498e",
      "tree": "c71e88075895d9b5f46d880e64b7e702acbea87d",
      "parents": [
        "57458036af75c6dbb62bee04b3982e92261eddb1"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Dec 12 13:28:29 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Dec 13 14:31:03 2008 -0600"
      },
      "message": "[SCSI] scsi_lib: only call scsi_unprep_request() under queue lock\n\nIt\u0027s called under that lock everywhere else and it does alter the\nrequest state, so it should be.\n\nThis one occurance in scsi_requeue_command() could open a window where\nreq-\u003especial is set to NULL while the requests is going through either\ntimeout or completion processing leading to NULL pointer derefs of the\nsort complained of in bugzillas 12020 and 12195.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "2a3a59e5c977654d3aad5bc11cc0aca2303a7f44",
      "tree": "4449aa49696e54a3a62fc595449be8caa89188f1",
      "parents": [
        "9bf1a2445f3c569098b8de7097ca324e65abecc2"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Nov 11 13:42:35 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Nov 16 08:13:58 2008 -0600"
      },
      "message": "[SCSI] Fix hang in starved list processing\n\nClose possible infinite loop with interrupts off when devices are\nadded back to the starved list.\n\nFixes: http://bugzilla.kernel.org/show_bug.cgi?id\u003d11898\n\nReported-by: \u003calex.shi@intel.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6c5121b78ba5c70a9990e2af6cb4d6bbffe0d4d8",
      "tree": "e64e5c0420f502e18a76a06f07434f631bf3870f",
      "parents": [
        "9d11251709f31d49c8167a619d4475fdf6cd7f73"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Sat Oct 04 14:11:35 2008 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Oct 23 11:42:16 2008 -0500"
      },
      "message": "[SCSI] export busy state via q-\u003elld_busy_fn()\n\nThis patch implements q-\u003elld_busy_fn() for scsi mid layer to export\nits busy state for request stacking drivers.\n\nFor efficiency, no lock is taken to check the busy state of\nshost/starget/sdev, since the returned value is not guaranteed and\nmay be changed after request stacking drivers call the function,\nregardless of taking lock or not.\n\nWhen scsi can\u0027t dispatch I/Os anymore and needs to kill I/Os\n(e.g. !sdev), scsi needs to return \u0027not busy\u0027.\nOtherwise, request stacking drivers may hold requests forever.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "9d11251709f31d49c8167a619d4475fdf6cd7f73",
      "tree": "0658cf513d86730d785b94eb2dd469ac4d0a51b0",
      "parents": [
        "22ab019b6ff8f3f93ddc93135d7e7ff24d982fe0"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Sat Oct 04 14:11:06 2008 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Oct 23 11:42:16 2008 -0500"
      },
      "message": "[SCSI] refactor sdev/starget/shost busy checking\n\nThis patch refactors the busy checking codes of scsi_device,\nScsi_Host and scsi_target.  There should be no functional change.\n\nThis is a preparation for another patch which exports scsi\u0027s busy\nstate to the block layer for request stacking drivers.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "32c356d76d7e13dcd0675189d8e9c64ef66aa561",
      "tree": "7ba361125a0abda0e2e7ca100f9d06fce52f6650",
      "parents": [
        "26e9a397774a0e94efbb8a0bf4a952c28d808cab"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Aug 20 00:58:13 2008 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Oct 23 11:41:16 2008 -0500"
      },
      "message": "[SCSI] fix removable device inability to detect disk changes\n\nOn Tue, 12 Aug 2008 15:08:14 +0200\nGiuliano Pochini \u003cpochini@shiny.it\u003e wrote:\n\n\u003e Fujitsu magneto-optical drive, Adaptec 29160 and\n\u003e Linux Jay 2.6.26 #7 SMP Sun Aug 10 18:34:22 CEST 2008 ppc 7455, altivec supported PowerMac3,6 GNU/Linux\n\u003e\n\u003e When I insert a disk and I mount it, scsi_test_unit_ready() is called and\n\u003e the do-while loop gets sshdr-\u003esense_key \u003d\u003d UNIT_ATTENTION in the first\n\u003e cycle and 0 in the second one. So the if below misses the UNIT_ATTENTION\n\u003e and sdev-\u003echanged \u003d 1 is not executed. At this point bad things can\n\u003e happen... I\u0027m not sure how to fix this. Any clue ?\n\nThe problem is essentially caused by us eating UNIT_ATTENTION\nconditions in scsi_test_unit_ready().  Fix by updating the -\u003echanged\nflag when this happens if the media is removable.\n\n[pochini@shiny.it: updates to tidy up patch]\nSigned-off-by: Giuliano Pochini \u003cpochini@shiny.it\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4a27446f3e39b06c28d1c8e31d33a5340826ed5c",
      "tree": "e55c982632ab6e0a8484f8267fce8f159b6f78dc",
      "parents": [
        "6000a368cd8e6da1caf101411bdb494cd6fb8b09"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Aug 19 18:45:31 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:52 2008 -0400"
      },
      "message": "[SCSI] modify scsi to handle new fail fast flags.\n\nThis checks the errors the scsi-ml determined were retryable\nand returns if we should fast fail it based on the request\nfail fast flags.\n\nWithout the patch, drivers like lpfc, qla2xxx and fcoe would return\nDID_ERROR for what it determines is a temporary communication problem.\nThere is no loss of connectivity at that time and the driver thinks\nthat it would be fast to retry at the driver level. SCSI-ml will however\nsees fast fail on the request and DID_ERROR and will fast fail the io.\nThis will then cause dm-multipath to fail the path and possibley switch\ntarget controllers when we should be retrying at the scsi layer.\n\nWe also were fast failing device errors to dm multiapth when\nunless the scsi_dh modules think otherwis we want to retry at\nthe scsi layer because multipath can only retry the IO like scsi\nshould have done. multipath is a little dumber though because it\ndoes not what the error was for and assumes that it should fail\nthe paths.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f0c0a376d0fcd4c5579ecf5e95f88387cba85211",
      "tree": "16b97ab71a22106cb1e5c1a177ab6c8103fe5a48",
      "parents": [
        "4480f15b3306f43bbb0310d461142b4e897ca45b"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Sun Aug 17 15:24:38 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:46 2008 -0400"
      },
      "message": "[SCSI] Add helper code so transport classes/driver can control queueing (v3)\n\nSCSI-ml manages the queueing limits for the device and host, but\ndoes not do so at the target level. However something something similar\ncan come in userful when a driver is transitioning a transport object to\nthe the blocked state, becuase at that time we do not want to queue\nio and we do not want the queuecommand to be called again.\n\nThe patch adds code similar to the exisiting SCSI_ML_*BUSY handlers.\nYou can now return SCSI_MLQUEUE_TARGET_BUSY when we hit\na transport level queueing issue like the hw cannot allocate some\nresource at the iscsi session/connection level, or the target has temporarily\nclosed or shrunk the queueing window, or if we are transitioning\nto the blocked state.\n\nbnx2i, when they rework their firmware according to netdev\ndevelopers requests, will also need to be able to limit queueing at this\nlevel. bnx2i will hook into libiscsi, but will allocate a scsi host per\nnetdevice/hba, so unlike pure software iscsi/iser which is allocating\na host per session, it cannot set the scsi_host-\u003ecan_queue and return\nSCSI_MLQUEUE_HOST_BUSY to reflect queueing limits on the transport.\n\nThe iscsi class/driver can also set a scsi_target-\u003ecan_queue value which\nreflects the max commands the driver/class can support. For iscsi this\nreflects the number of commands we can support for each session due to\nsession/connection hw limits, driver limits, and to also reflect the\nsession/targets\u0027s queueing window.\n\nChanges:\nv1 - initial patch.\nv2 - Fix scsi_run_queue handling of multiple blocked targets.\nPreviously we would break from the main loop if a device was added back on\nthe starved list. We now run over the list and check if any target is\nblocked.\nv3 - Rediff for scsi-misc.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ef5bef357cdf49f3a386c7102dbf3be5f7e5c913",
      "tree": "48d9dc86768e3e146267ea21d0c898f9008275a1",
      "parents": [
        "e26feff647ef34423b048b940540a0059001ddb0",
        "41bfcf90101601f9507240ff0435c1b73d28a132"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:53:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:53:26 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (37 commits)\n  [SCSI] zfcp: fix double dbf id usage\n  [SCSI] zfcp: wait on SCSI work to be finished before proceeding with init dev\n  [SCSI] zfcp: fix erp list usage without using locks\n  [SCSI] zfcp: prevent fc_remote_port_delete calls for unregistered rport\n  [SCSI] zfcp: fix deadlock caused by shared work queue tasks\n  [SCSI] zfcp: put threshold data in hba trace\n  [SCSI] zfcp: Simplify zfcp data structures\n  [SCSI] zfcp: Simplify get_adapter_by_busid\n  [SCSI] zfcp: remove all typedefs and replace them with standards\n  [SCSI] zfcp: attach and release SAN nameserver port on demand\n  [SCSI] zfcp: remove unused references, declarations and flags\n  [SCSI] zfcp: Update message with input from review\n  [SCSI] zfcp: add queue_full sysfs attribute\n  [SCSI] scsi_dh: suppress comparison warning\n  [SCSI] scsi_dh: add Dell product information into rdac device handler\n  [SCSI] qla2xxx: remove the unused SCSI_QLOGIC_FC_FIRMWARE option\n  [SCSI] qla2xxx: fix printk format warnings\n  [SCSI] qla2xxx: Update version number to 8.02.01-k8.\n  [SCSI] qla2xxx: Ignore payload reserved-bits during RSCN processing.\n  [SCSI] qla2xxx: Additional residual-count corrections during UNDERRUN handling.\n  ...\n"
    },
    {
      "commit": "242f9dcb8ba6f68fcd217a119a7648a4f69290e9",
      "tree": "1bfe245ffbc50d204d76665cd8f90d85100f86a1",
      "parents": [
        "608aeef17a91747d6303de4df5e2c2e6899a95e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Sep 14 05:55:09 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "block: unify request timeout handling\n\nRight now SCSI and others do their own command timeout handling.\nMove those bits to the block layer.\n\nInstead of having a timer per command, we try to be a bit more clever\nand simply have one per-queue. This avoids the overhead of having to\ntear down and setup a timer for each command, so it will result in a lot\nless timer fiddling.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6f4267e3bd1211b3d09130e626b0b3d885077610",
      "tree": "e9350f919238866c3bcd9c340ffea639a0c5de1d",
      "parents": [
        "0f1d87a2acb8fd1f2ef8af109a785123ddc1a6cb"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Aug 22 16:53:31 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Oct 03 11:46:13 2008 -0500"
      },
      "message": "[SCSI] Update the SCSI state model to allow blocking in the created state\n\nBrian King \u003cbrking@linux.vnet.ibm.com\u003e reported that fibre channel\ndevices can oops during scanning if their ports block (because the\ndevice goes from CREATED -\u003e BLOCK -\u003e RUNNING rather than CREATED -\u003e\nBLOCK -\u003e CREATED).\n\nFix this by adding a new state: CREATED_BLOCK which can only transition\nback to CREATED and disallow the CREATED -\u003e BLOCK transition.  Now both\nthe created and blocked states that the mid-layer recognises can include\nCREATED_BLOCK.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "44ea91c597ae4641d9ac21b8bbba0795d2f4261e",
      "tree": "93a373ec24d3a290533bbcce1e7d038a6fb81179",
      "parents": [
        "048feec5548c0582ee96148c61b87cccbcb5f9be"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Sep 20 00:31:50 2008 +0000"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Sep 23 12:29:01 2008 -0700"
      },
      "message": "[SCSI] Fix hang with split requests\n\nSometimes, particularly for USB devices with the last sector bug,\nrequests get completed in chunks.  There\u0027s a bug in this in that if\none of the chunks gets an error, we complete that chunk with an error\nbut never move on to the remaining ones, leading to the request\nhanging (because it\u0027s not fully completed).\n\nFix this by completing all remaining chunks if an error is encountered.\n\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "cadbd4a5e36dde7e6c49b587b2c419103c0b7218",
      "tree": "c44ec1b85a132ef5af452a6c26037c3efba4bcca",
      "parents": [
        "2b142900784c6e38c8d39fa57d5f95ef08e735d8"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Jul 03 23:47:27 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jul 27 10:31:49 2008 -0400"
      },
      "message": "[SCSI] replace __FUNCTION__ with __func__\n\n[jejb: fixed up a ton of missed conversions.\n\n All of you are on notice this has happened, driver trees will now\n need to be rebased]\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: SCSI List \u003clinux-scsi@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6bd522f6a226f435508433d24e0de4619e016a9d",
      "tree": "af7e4a482bad316ce8fc3955f6da16615b564afb",
      "parents": [
        "b7b1a35ea563a8f1219dc3fdf12f37937cb83245"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Jul 22 15:34:38 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 26 15:14:59 2008 -0400"
      },
      "message": "[SCSI] scsi_lib: use blk_rq_tagged in scsi_request_fn\n\nI goofed and did not see the macro for checking if a request is tagged.\nThis patch has us use blk_rq_tagged instead of digging into the req-\u003etag.\n\nPatch was made over scsi-misc.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "511e44f42e3239a4df77b8e0e46d294d98a768ad",
      "tree": "a0af26ec88cbf65b79aa23640035fbdb7fca795b",
      "parents": [
        "7027ad72a689797475973c6feb5f0b673382f779"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Jul 17 04:28:33 2008 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 26 15:14:55 2008 -0400"
      },
      "message": "[SCSI] Do not retry a request whose data integrity check failed\n\nIf initiator or target reject the I/O due to DIF errors there is no\npoint in retrying.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "7027ad72a689797475973c6feb5f0b673382f779",
      "tree": "4f6daa1d509708fb340d09608d79557a9af57f00",
      "parents": [
        "db007fc5e20c00b356e9ffe2d0e007398c65c837"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Jul 17 17:08:48 2008 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 26 15:14:55 2008 -0400"
      },
      "message": "[SCSI] Support devices with protection information\n\nImplement support for DMA of protection information for devices that\nare data integrity capable.\n\n - Add support for mapping an extra scatter-gather list containing\n   the protection information.\n\n - Allocate protection scsi_data_buffer if host is DIX (integrity DMA)\n   capable.\n\n - Accessor function for checking whether a device has protection\n   enabled.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ecefe8a97577d6c1a68d14ab6fb19bce99448af2",
      "tree": "966860cc4ac9069b98f1b441f3d8b12675b9087a",
      "parents": [
        "5d90027fb579eee41ec1b61f23195ed2fdd51da2"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Fri Jul 11 19:50:35 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 26 15:14:50 2008 -0400"
      },
      "message": "[SCSI] fix shared tag map tag allocation\n\nWhen drivers use a shared tag map we can end up with more requests\nthan tags, because the tag map is shost-\u003ecan_queue tags and there\ncan be sdevs * sdev-\u003equeue_depth requests. In scsi_request_fn\nif tag allocation fails we just drop down to just dequeueing the\ntag without a tag. The problem is that drivers using the shared tag\nmap rely on a valid tag always being set, because it will use the\ntag number to lookup commands later.\n\nThis patch has us check if we got a valid tag when the host lock\nis held right before we check if the host queue is ready. We do the\ncheck here because to allocate the tag we need the q lock, but\nif the tag is bad we want to add the device/q onto the starved list\nwhich requires the host lock.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "89a93f2f4834f8c126e8d9dd6b368d0b9e21ec3d",
      "tree": "e731456fec0cab1225ad3e806dc8d3efefa0a78b",
      "parents": [
        "260eddf4391f162a69d1d163729249635fa7a78f",
        "fe9233fb6914a0eb20166c967e3020f7f0fba2c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (102 commits)\n  [SCSI] scsi_dh: fix kconfig related build errors\n  [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of\n  [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h\n  [SCSI] make struct scsi_{host,target}_type static\n  [SCSI] fix locking in host use of blk_plug_device()\n  [SCSI] zfcp: Cleanup external header file\n  [SCSI] zfcp: Cleanup code in zfcp_erp.c\n  [SCSI] zfcp: zfcp_fsf cleanup.\n  [SCSI] zfcp: consolidate sysfs things into one file.\n  [SCSI] zfcp: Cleanup of code in zfcp_aux.c\n  [SCSI] zfcp: Cleanup of code in zfcp_scsi.c\n  [SCSI] zfcp: Move status accessors from zfcp to SCSI include file.\n  [SCSI] zfcp: Small QDIO cleanups\n  [SCSI] zfcp: Adapter reopen for large number of unsolicited status\n  [SCSI] zfcp: Fix error checking for ELS ADISC requests\n  [SCSI] zfcp: wait until adapter is finished with ERP during auto-port\n  [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver\n  [SCSI] sg: Add target reset support\n  [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC\n  [SCSI] sd: Move scsi_disk() accessor function to sd.h\n  ...\n"
    },
    {
      "commit": "2476b4d0426e1d6d4a42b2f7ae08f668b2cfe510",
      "tree": "72ec0e163229be6674a8fe110d49dea2546dad55",
      "parents": [
        "92c299d11acd3f3e75a721acb8f57c457d5c394f"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jul 03 11:31:55 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:36 2008 -0500"
      },
      "message": "[SCSI] fix locking in host use of blk_plug_device()\n\nscsi_lib.c:scsi_host_queue_ready() plugs the device with incorrect\nlocking.  It should actually have the queue lock held, but it\u0027s\nholding the host lock.  Fix this by eliminating the call.  The host\nready has no need to plug the queue because if it returns 0 in\nscsi_request_function control transfers to not_ready which acquires\nthe queue lock and plugs the device if its at zero depth.\n\nReported-by: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6362abd3e00d3161affad996fa53cc69a01fc6d1",
      "tree": "39dd25d3cfa8147586596042bbfc9a6adf61d68d",
      "parents": [
        "090507157f3bc43dd925fda50f8aca7d03b616b6"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Jun 05 23:30:03 2008 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:24 2008 -0500"
      },
      "message": "[SCSI] Rename scsi_bidi_sdb_cache\n\nThe data integrity changes need to dynamically allocate\nscsi_data_buffers too.  Rename scsi_bidi_sdb_cache for clarity.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bdb2b8cab4392ce41ddfbd6773a3da3334daf836",
      "tree": "1d7804a10bc8af816af41a2e7d1ce73f9e0e72d3",
      "parents": [
        "b7279469d66b55119784b8b9529c99c1955fe747"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Tue Jun 24 14:03:14 2008 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jul 06 11:33:08 2008 -0500"
      },
      "message": "[SCSI] erase invalid data returned by device\n\nThis patch (as1108) fixes a problem that can occur with certain USB\nmass-storage devices: They return invalid data together with a residue\nindicating that the data should be ignored.  Rather than leave the\ninvalid data in a transfer buffer, where it can get misinterpreted,\nthe patch clears the invalid portion of the buffer.\n\nThis solves a problem (wrong write-protect setting detected) reported\nby Maciej Rutecki and Peter Teoh.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nTested-by: Peter Teoh \u003chtmldeveloper@gmail.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a6a8d9f87eb8510a8f53672ea87703f62185d75f",
      "tree": "d166e14e3c035ae0e0f26329b2b3b0495046d234",
      "parents": [
        "53c8ba95402be65d412a806cda3430f0e72cd107"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu May 01 14:49:46 2008 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jun 05 09:23:40 2008 -0500"
      },
      "message": "[SCSI] scsi_dh: add infrastructure for SCSI Device Handlers\n\nSome of the storage devices (that can be accessed through multiple paths),\ndo need some special handling for\n\t1. Activating the passive path of the storage access.\n\t2. Decode and handle the special sense codes returned by the devices.\n\t3. Handle the I/Os being sent to the passive path, especially\n           during the device probe time.\nwhen accessed through multiple paths.\n\nAs of today this special device handling is done at the dm-multipath\nlayer using dm-handlers. That works well for (1); for (2) to be handled\nat dm layer, scsi sense information need to be exported from SCSI to dm-layer,\nwhich is not very attractive; (3) cannot be done at all at the dm layer.\n\nDevice handler has been moved to SCSI mainly to handle (2) and (3) properly.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d626e3bf728c47746f2129aa00c775d4e8c2a73b",
      "tree": "551a8c362c7b9833e7848bc6167cf322f75563a1",
      "parents": [
        "b66e1f11ebc429569a3784aaf64123633d9e3ed1",
        "7ad4a485002c141f156a014e89542e01e7f8e36a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 02 13:52:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 02 13:52:35 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6:\n  [SCSI] aic94xx: fix section mismatch\n  [SCSI] u14-34f: Fix 32bit only problem\n  [SCSI] dpt_i2o: sysfs code\n  [SCSI] dpt_i2o: 64 bit support\n  [SCSI] dpt_i2o: move from virt_to_bus/bus_to_virt to dma_alloc_coherent\n  [SCSI] dpt_i2o: use standard __init / __exit code\n  [SCSI] megaraid_sas: fix suspend/resume sections\n  [SCSI] aacraid: Add Power Management support\n  [SCSI] aacraid: Fix jbod operations scan issues\n  [SCSI] aacraid: Fix warning about macro side-effects\n  [SCSI] add support for variable length extended commands\n  [SCSI] Let scsi_cmnd-\u003ecmnd use request-\u003ecmd buffer\n  [SCSI] bsg: add large command support\n  [SCSI] aacraid: Fix down_interruptible() to check the return value correctly\n  [SCSI] megaraid_sas; Update the Version and Changelog\n  [SCSI] ibmvscsi: Handle non SCSI error status\n  [SCSI] bug fix for free list handling\n  [SCSI] ipr: Rename ipr\u0027s state scsi host attribute to prevent collisions\n  [SCSI] megaraid_mbox: fix Dell CERC firmware problem\n"
    },
    {
      "commit": "db4742dd8f0aa9125b74f9b2516336a75f3d9106",
      "tree": "6820b74e8fbfb13c4eee4c8ef8b59a9132320799",
      "parents": [
        "64a87b244b9297667ca80264aab849a36f494884"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Wed Apr 30 11:27:26 2008 +0300"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri May 02 11:33:25 2008 -0500"
      },
      "message": "[SCSI] add support for variable length extended commands\n\nAdd support for variable-length, extended, and vendor specific\nCDBs to scsi-ml. It is now possible for initiators and ULD\u0027s\nto issue these types of commands. LLDs need not change much.\nAll they need is to raise the .max_cmd_len to the longest command\nthey support (see iscsi patch).\n\n- clean-up some code paths that did not expect commands to be\n  larger than 16, and change cmd_len members\u0027 type to short as\n  char is not enough.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "64a87b244b9297667ca80264aab849a36f494884",
      "tree": "554d78d1cfe594b92409a19b3ed1d32efcbd31cc",
      "parents": [
        "9f5de6b105bfa45911d46566df0b36720b648c42"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Wed Apr 30 11:19:47 2008 +0300"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri May 02 10:18:22 2008 -0500"
      },
      "message": "[SCSI] Let scsi_cmnd-\u003ecmnd use request-\u003ecmd buffer\n\n - struct scsi_cmnd had a 16 bytes command buffer of its own.\n   This is an unnecessary duplication and copy of request\u0027s\n   cmd. It is probably left overs from the time that scsi_cmnd\n   could function without a request attached. So clean that up.\n\n - Once above is done, few places, apart from scsi-ml, needed\n   adjustments due to changing the data type of scsi_cmnd-\u003ecmnd.\n\n - Lots of drivers still use MAX_COMMAND_SIZE. So I have left\n   that #define but equate it to BLK_MAX_CDB. The way I see it\n   and is reflected in the patch below is.\n   MAX_COMMAND_SIZE - means: The longest fixed-length (*) SCSI CDB\n                      as per the SCSI standard and is not related\n                      to the implementation.\n   BLK_MAX_CDB.     - The allocated space at the request level\n\n - I have audit all ISA drivers and made sure none use -\u003ecmnd in a DMA\n   Operation. Same audit was done by Andi Kleen.\n\n(*)fixed-length here means commands that their size can be determined\n   by their opcode and the CDB does not carry a length specifier, (unlike\n   the VARIABLE_LENGTH_CMD(0x7f) command). This is actually not exactly\n   true and the SCSI standard also defines extended commands and\n   vendor specific commands that can be bigger than 16 bytes. The kernel\n   will support these using the same infrastructure used for VARLEN CDB\u0027s.\n   So in effect MAX_COMMAND_SIZE means the maximum size command\n   scsi-ml supports without specifying a cmd_len by ULD\u0027s\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "75ad23bc0fcb4f992a5d06982bf0857ab1738e9e",
      "tree": "8668ef63b1f420252ae41aed9e13737d49fd8054",
      "parents": [
        "68154e90c9d1492d570671ae181d9a8f8530da55"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Apr 29 14:48:33 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 29 14:48:33 2008 +0200"
      },
      "message": "block: make queue flags non-atomic\n\nWe can save some atomic ops in the IO path, if we clearly define\nthe rules of how to modify the queue flags.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fa8e36c39b00a219d2c37250e493c3421e0e67e9",
      "tree": "81fae0291d92b703fa281dba31011b9e9c467f9a",
      "parents": [
        "bfab1637b5d0c9683016917fa8e082ba6ce8d5a6"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Apr 02 18:11:52 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 07 12:19:10 2008 -0500"
      },
      "message": "[SCSI] fix barrier failure issue\n\nCurrently, if the barrier command fails, the error return isn\u0027t seen\nby the block layer and it proceeds on regardless.  The problem is that\nSCSI always returns no error for REQ_TYPE_BLOCK_PC ... it expects the\nsubmitter to pick the errors out of req-\u003eerrors, which the block\nbarrier functions don\u0027t do.\n\nSince it appears that the way SG_IO and scsi_execute_request() work\nthey discard the block error return and always use req-\u003eerrors, the\nbest fix for this is to have the SCSI layer return an error to block\nif one actually occurred (this also allows us to filter out spurious\nerrors, like deferred sense).\n\nThis patch is a bug fix that will need backporting to stable, but it\u0027s\nalso quite a big change and in need of testing, so we\u0027ll incubate in\nthe main kernel tree and backport at the -rc2 or so stage if no\nproblems turn up.\n\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8c5e03d3cf70161413aaf7152dafa96daca5bb2f",
      "tree": "5a228b528af16644d26aa2d11d53309ffc099ead",
      "parents": [
        "f6b196a2f3058c6f70bb36ab61ff8aa996fca301"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Mar 31 01:53:55 2008 +0300"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 07 12:19:08 2008 -0500"
      },
      "message": "[SCSI] make scsi_end_bidi_request() static\n\nThis patch makes the needlessly global scsi_end_bidi_request() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4d1566ed2100d074ccc654e5cf2e44cdea3a01d0",
      "tree": "8fab30e6e135023b8a595c8e11e8eff30ac17a72",
      "parents": [
        "c02e600280c605c761190ef82a6e6fa6aa7fb248"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Mar 19 13:04:47 2008 +0100"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Mar 19 11:51:28 2008 -0500"
      },
      "message": "[SCSI] fix media change events for polled devices\n\nCommit:\n  a341cd0f (SCSI: add asynchronous event notification API)\nbreaks:\n  285e9670 (sr,sd: send media state change modification events)\nby introducing an event filter, which is removed here, to make\nevents, we are depending on, happen again.\n\nFix this by removing the event filter.  It\u0027s pretty much broken at the\nmoment, since a user can\u0027t set it (the attribute being read only).  A\nproper fix will be to make the event discriminator distinguish between\nAN and Polled media change events.\n\nCc: David Zeuthen \u003cdavid@fubar.dk\u003e\nCc: kristen accardi \u003ckaccardi@gmail.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6b00769fe1502b4ad97bb327ef7ac971b208bfb5",
      "tree": "2ffc51176437ebf4f8a4ab13de59a32431043f15",
      "parents": [
        "40b01b9bbdf51ae543a04744283bf2d56c4a6afa"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 19 11:36:35 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 19 11:36:35 2008 +0100"
      },
      "message": "block: add request-\u003eraw_data_len\n\nWith padding and draining moved into it, block layer now may extend\nrequests as directed by queue parameters, so now a request has two\nsizes - the original request size and the extended size which matches\nthe size of area pointed to by bios and later by sgs.  The latter size\nis what lower layers are primarily interested in when allocating,\nfilling up DMA tables and setting up the controller.\n\nBoth padding and draining extend the data area to accomodate\ncontroller characteristics.  As any controller which speaks SCSI can\nhandle underflows, feeding larger data area is safe.\n\nSo, this patch makes the primary data length field, request-\u003edata_len,\nindicate the size of full data area and add a separate length field,\nrequest-\u003eraw_data_len, for the unmodified request size.  The latter is\nused to report to higher layer (userland) and where the original\nrequest size should be fed to the controller or device.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4d2de3a50ce19af2008a90636436a1bf5b3b697b",
      "tree": "7bf2d1974e54567cba53f258ccfaaa8d9922319a",
      "parents": [
        "76d78300a6eb8b7f08e47703b7e68a659ffc2053"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Tue Feb 05 10:36:10 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:44 2008 -0600"
      },
      "message": "[SCSI] fix BUG when sum(scatterlist) \u003e bufflen\n\nWhen sending a SCSI command to a tape drive via the SCSI Generic (sg)\ndriver, if the command has a data transfer length more than\nscatter_elem_sz (32 KB default) and not a multiple of 512, then I either\nhit BUG_ON(!valid_dma_direction(direction)) in dma_unmap_sg() or else\nthe command never completes (depending on the LLDD).\n\nWhen constructing scatterlists, the sg driver rounds up the scatterlist\nelement sizes to be a multiple of 512.  This can result in\nsum(scatterlist lengths) \u003e bufflen.  In this case, scsi_req_map_sg()\nincorrectly sets bio-\u003ebi_size to sum(scatterlist lengths) rather than to\nbufflen.  When the command completes, req_bio_endio() detects that\nbio-\u003ebi_size !\u003d 0, and so it doesn\u0027t call bio_endio().  This causes the\ncommand to be resubmitted, resulting in BUG_ON or the command never\ncompleting.\n\nThis patch makes scsi_req_map_sg() set bio-\u003ebi_size to bufflen rather\nthan to sum(scatterlist lengths), which fixes the problem.\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "99c84dbdc73d158a1ab955a4a5f74c18074796a3",
      "tree": "497fc8e86eca9b22a159c512e68ff8828a5e923b",
      "parents": [
        "681cc5cd3efbeafca6386114070e0bfb5012e249"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "iommu sg merging: call dma_set_seg_boundary in __scsi_alloc_queue()\n\nThis is a one-line patch to add the following to __scsi_alloc_queue():\n\ndma_set_seg_boundary(dev, shost-\u003edma_boundary);\n\nThis is the simplest approach but the result looks odd,\n__scsi_alloc_queue() does:\n\nblk_queue_segment_boundary(q, shost-\u003edma_boundary);\ndma_set_seg_boundary(dev, shost-\u003edma_boundary);\nblk_queue_max_segment_size(q, dma_get_max_seg_size(dev));\n\nI think that it would be better to set up segment boundary in the same\nway as we did for the maximum segment size. That is, removing\nshost-\u003edma_boundary and LLDs call pci_set_dma_seg_boundary (or its\nfriends).\n\nThen __scsi_alloc_queue() can set up both limits in the same way:\n\nblk_queue_segment_boundary(q, dma_get_seg_boundary(dev));\nblk_queue_max_segment_size(q, dma_get_max_seg_size(dev));\n\nkilling dma_boundary in scsi_host_template needs a large patch for\nlibata (dma_boundary is used by only libata and sym53c8xx). I\u0027ll send\na patch to do that if it is acceptable. James and Jeff?\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "860ac568e825b623b0b335ca277dd47d1d7fd5d0",
      "tree": "efdf476e1bbf564d62935f86c3467a4c4f4a7fc6",
      "parents": [
        "d1b5163206769aa93271bc1029e877ea9f920a5d"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg merging: call blk_queue_segment_boundary in __scsi_alloc_queue\n\nrequest_queue and device struct must have the same value of a segment\nsize limit. This patch adds blk_queue_segment_boundary in\n__scsi_alloc_queue so LLDs don\u0027t need to call both\nblk_queue_segment_boundary and set_dma_max_seg_size. A LLD can change\nthe default value (64KB) can call device_dma_parameters accessors like\npci_set_dma_max_seg_size when allocating scsi_host.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d9dd6eef888658d26ebea0cc24d15d2a93ab015",
      "tree": "f3882779400f1ac10469e3f76ea544408712c1b2",
      "parents": [
        "b172b6e99e948b6abb180082cfeb8f9b1450ebff"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Fri Jan 25 23:25:14 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 30 13:14:25 2008 -0600"
      },
      "message": "[SCSI] handle scsi_init_queue failure properly\n\nscsi_init_queue is expected to clean up allocated things when it\nfails.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b172b6e99e948b6abb180082cfeb8f9b1450ebff",
      "tree": "bef3daf89b0ff8124ad3db6660ea9acf0e22c466",
      "parents": [
        "c639d14e2f70d086842d37fb8e4f5ab9bd56af2e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Fri Jan 25 23:25:13 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 30 13:14:25 2008 -0600"
      },
      "message": "[SCSI] destroy scsi_bidi_sdb_cache in scsi_exit_queue\n\nNeeds to call kmem_cache_destroy for scsi_bidi_sdb_cache in\nscsi_exit_queue.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d3f46f39b7092594b498abc12f0c73b0b9913bde",
      "tree": "6d595bdecbdd41a958e05e425664209f5d71ecf1",
      "parents": [
        "b8de16318410f6f8611a879678a531237e4aadc9"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Jan 15 11:11:46 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 30 13:14:02 2008 -0600"
      },
      "message": "[SCSI] remove use_sg_chaining\n\nWith the sg table code, every SCSI driver is now either chain capable\nor broken (or has sg_tablesize set so chaining is never activated), so\nthere\u0027s no need to have a check in the host template.\n\nAlso tidy up the code by moving the scatterlist size defines into the\nSCSI includes and permit the last entry of the scatterlist pools not\nto be a power of two.\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b8de16318410f6f8611a879678a531237e4aadc9",
      "tree": "3451b3bb3ccd95d17ebe246d455a90a5d4fb172b",
      "parents": [
        "6f9a35e2dafa0f855ab051c11bdbf739745ff6f5"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Jan 18 12:02:15 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 30 13:03:41 2008 -0600"
      },
      "message": "[SCSI] bidirectional: fix up for the new blk_end_request code\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6f9a35e2dafa0f855ab051c11bdbf739745ff6f5",
      "tree": "5ca273c98b61a4d329653ef30faa2c0414eccd2b",
      "parents": [
        "30b0c37b27485a9cb897bfe3824f6f517b8c80d6"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 13 13:50:53 2007 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 30 13:03:41 2008 -0600"
      },
      "message": "[SCSI] bidirectional command support\n\nAt the block level bidi request uses req-\u003enext_rq pointer for a second\nbidi_read request.\nAt Scsi-midlayer a second scsi_data_buffer structure is used for the\nbidi_read part. This bidi scsi_data_buffer is put on\nrequest-\u003enext_rq-\u003especial. Struct scsi_cmnd is not changed.\n\n- Define scsi_bidi_cmnd() to return true if it is a bidi request and a\n  second sgtable was allocated.\n\n- Define scsi_in()/scsi_out() to return the in or out scsi_data_buffer\n  from this command This API is to isolate users from the mechanics of\n  bidi.\n\n- Define scsi_end_bidi_request() to do what scsi_end_request() does but\n  for a bidi request. This is necessary because bidi commands are a bit\n  tricky here. (See comments in body)\n\n- scsi_release_buffers() will also release the bidi_read scsi_data_buffer\n\n- scsi_io_completion() on bidi commands will now call\n  scsi_end_bidi_request() and return.\n\n- The previous work done in scsi_init_io() is now done in a new\n  scsi_init_sgtable() (which is 99% identical to old scsi_init_io())\n  The new scsi_init_io() will call the above twice if needed also for\n  the bidi_read command. Only at this point is a command bidi.\n\n- In scsi_error.c at scsi_eh_prep/restore_cmnd() make sure bidi-lld is not\n  confused by a get-sense command that looks like bidi. This is done\n  by puting NULL at request-\u003enext_rq, and restoring.\n\n[jejb: update to sg_table and resolve conflicts\nalso update to blk-end-request and resolve conflicts]\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "30b0c37b27485a9cb897bfe3824f6f517b8c80d6",
      "tree": "22643da8e175ff7badf2413dc8c84b2e99613a6f",
      "parents": [
        "bb52d82f45df3a2661d88befba7c79a7db8be496"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 13 13:47:40 2007 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 30 13:03:40 2008 -0600"
      },
      "message": "[SCSI] implement scsi_data_buffer\n\nIn preparation for bidi we abstract all IO members of scsi_cmnd,\nthat will need to duplicate, into a substructure.\n\n- Group all IO members of scsi_cmnd into a scsi_data_buffer\n  structure.\n- Adjust accessors to new members.\n- scsi_{alloc,free}_sgtable receive a scsi_data_buffer instead of\n  scsi_cmnd. And work on it.\n- Adjust scsi_init_io() and  scsi_release_buffers() for above\n  change.\n- Fix other parts of scsi_lib/scsi.c to members migration. Use\n  accessors where appropriate.\n\n- fix Documentation about scsi_cmnd in scsi_host.h\n\n- scsi_error.c\n  * Changed needed members of struct scsi_eh_save.\n  * Careful considerations in scsi_eh_prep/restore_cmnd.\n\n- sd.c and sr.c\n  * sd and sr would adjust IO size to align on device\u0027s block\n    size so code needs to change once we move to scsi_data_buff\n    implementation.\n  * Convert code to use scsi_for_each_sg\n  * Use data accessors where appropriate.\n\n- tgt: convert libsrp to use scsi_data_buffer\n\n- isd200: This driver still bangs on scsi_cmnd IO members,\n  so need changing\n\n[jejb: rebased on top of sg_table patches fixed up conflicts\nand used the synergy to eliminate use_sg and sg_count]\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    }
  ],
  "next": "bb52d82f45df3a2661d88befba7c79a7db8be496"
}
