)]}'
{
  "log": [
    {
      "commit": "96b1f96dcab87756c0a1e7ba76bc5dc2add82b88",
      "tree": "9625a785d543663ba4a97e7fc452a9d77af9a86d",
      "parents": [
        "70b25f890ce9f0520c64075ce9225a5b020a513e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Sat Apr 24 16:21:19 2010 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun May 02 11:16:50 2010 -0400"
      },
      "message": "[SCSI] libiscsi: regression: fix header digest errors\n\nThis fixes a regression introduced with this commit:\n\ncommit d3305f3407fa3e9452079ec6cc8379067456e4aa\nAuthor: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nDate:   Thu Aug 20 15:10:58 2009 -0500\n\n    [SCSI] libiscsi: don\u0027t increment cmdsn if cmd is not sent\n\nin 2.6.32.\n\nWhen I moved the hdr-\u003ecmdsn after init_task, I added\na bug when header digests are used. The problem is\nthat the LLD may calculate the header digest in init_task,\nso if we then set the cmdsn after the init_task call we\nchange what the digest will be calculated by the target.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "7da23b86e14b77c094b11a9fa5ef5b3758fc9193",
      "tree": "3da1b6c3c105daf61f1fe1c785821213ab6a9dde",
      "parents": [
        "749d229761ff0135cc4e16b8a28b41ae2f6b2c35",
        "421e33d0045ac0aa119c033b78742e0fbf4c3b21"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 15:37:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 15:37:12 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:\n  [SCSI] qla1280: retain firmware for error recovery\n  [SCSI] attirbute_container: Initialize sysfs attributes with sysfs_attr_init\n  [SCSI] advansys: fix regression with request_firmware change\n  [SCSI] qla2xxx: Updated version number to 8.03.02-k2.\n  [SCSI] qla2xxx: Prevent sending mbx commands from sysfs during isp reset.\n  [SCSI] qla2xxx: Disable MSI on qla24xx chips other than QLA2432.\n  [SCSI] qla2xxx: Check to make sure multique and CPU affinity support is not enabled at the same time.\n  [SCSI] qla2xxx: Correct vp_idx checking during PORT_UPDATE processing.\n  [SCSI] qla2xxx: Honour \"Extended BB credits\" bit for CNAs.\n  [SCSI] scsi_transport_fc: Make sure commands are completed when rport is offline\n  [SCSI] libiscsi: Fix recovery slowdown regression\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "4ae0a6c15efcc37e94e3f30e3533bdec03c53126",
      "tree": "df66736300cb0b7eb41622bb19fc57fd553caf57",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Mar 09 14:14:51 2010 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Mar 27 15:02:48 2010 -0400"
      },
      "message": "[SCSI] libiscsi: Fix recovery slowdown regression\n\nWe could be failing/stopping a connection due to libiscsi starting\nrecovery/cleanup, but the xmit path or scsi eh thread path\ncould be dropping the connection at the same time.\n\nAs a result the session-\u003estate gets set to failed instead of in\nrecovery. We end up not blocking the session\nand so the replacement timeout never gets started and we only end up\nfailing the IO when scsi_softirq_done sees that the\ncmd has been running for (cmd-\u003eallowed + 1) * rq-\u003etimeout secs.\n\nWe used to fail the IO right away so users are seeing a long\ndelay when using dm-multipath. This problem was added in\n2.6.28.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "309ce156aa27f29338438011d292a8d6496623d3",
      "tree": "7d0554a3a6c7c15b612b8eeb00991c0e54cdaf1e",
      "parents": [
        "d7b4627f5f3390a2f350f16c047b3fc3eccce6d8"
      ],
      "author": {
        "name": "Jayamohan Kallickal",
        "email": "jayamohank@serverengines.com",
        "time": "Sat Feb 20 08:02:10 2010 +0530"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Mar 03 17:39:04 2010 +0530"
      },
      "message": "[SCSI] libiscsi: Make iscsi_eh_target_reset start with session reset\n\nThe iscsi_eh_target_reset has been modified to attempt\ntarget reset only. If it fails, then iscsi_eh_session_reset\nwill be called.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Jayamohan Kallickal \u003cjayamohank@serverengines.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "92ed4d69934a1281abcc10c6a82274a04651a260",
      "tree": "731351eb3bd1c642dc8ed8b27389173e44998a77",
      "parents": [
        "9010b94636312c7fb12b591ef09e915f8f80bbd5"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Feb 10 16:51:45 2010 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Feb 17 13:40:10 2010 -0600"
      },
      "message": "[SCSI] libiscsi: reset cmd timer if cmds are making progress\n\nThis patch resets the cmd timer if cmds started before\nthe timedout command are making progress. The idea is\nthat the cmd probably timed out because we are trying\nto exeucte too many commands. If it turns out that the\ndevice the IO timedout on was bad or the cmd just got\nscrewed up but other IO/devs were ok then we will\nwill figure this out when the cmds ahead of the timed\nout one complete ok.\n\nThis also fixes a bug where we were sort of detecting\nthis by setting the last_timeout and last_xfer to the\nsame value when the task was allocated. That caught\nthe case where we never got to send any IO for it. However,\nif the problem had started right before we started the\nnew task, then we were forced to wait an extra cmd\ntimeout seconds to start the scsi eh.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "7acd72eb85f1c7a15e8b5eb554994949241737f1",
      "tree": "76712bb9f38690d8cf9c2f91bef811e4413d1aa3",
      "parents": [
        "e64c026dd09b73faf20707711402fc5ed55a8e70"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:56 2009 -0800"
      },
      "message": "kfifo: rename kfifo_put... into kfifo_in... and kfifo_get... into kfifo_out...\n\nrename kfifo_put...  into kfifo_in...  to prevent miss use of old non in\nkernel-tree drivers\n\nditto for kfifo_get...  -\u003e kfifo_out...\n\nImprove the prototypes of kfifo_in and kfifo_out to make the kerneldoc\nannotations more readable.\n\nAdd mini \"howto porting to the new API\" in kfifo.h\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e64c026dd09b73faf20707711402fc5ed55a8e70",
      "tree": "4780736e021824f15329a0826eff3cc27d3f9646",
      "parents": [
        "c1e13f25674ed564948ecb7dfe5f83e578892896"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:56 2009 -0800"
      },
      "message": "kfifo: cleanup namespace\n\nchange name of __kfifo_* functions to kfifo_*, because the prefix __kfifo\nshould be reserved for internal functions only.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1e13f25674ed564948ecb7dfe5f83e578892896",
      "tree": "24fac07b3e2b66dff01c3127b34077de1de4c101",
      "parents": [
        "45465487897a1c6d508b14b904dc5777f7ec7e04"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:56 2009 -0800"
      },
      "message": "kfifo: move out spinlock\n\nMove the pointer to the spinlock out of struct kfifo.  Most users in\ntree do not actually use a spinlock, so the few exceptions now have to\ncall kfifo_{get,put}_locked, which takes an extra argument to a\nspinlock.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45465487897a1c6d508b14b904dc5777f7ec7e04",
      "tree": "935c8dae68dc793ff2f795d57cf027531475cd53",
      "parents": [
        "2ec91eec47f713e3d158ba5b28a24a85a2cf3650"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Mon Dec 21 14:37:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:17:55 2009 -0800"
      },
      "message": "kfifo: move struct kfifo in place\n\nThis is a new generic kernel FIFO implementation.\n\nThe current kernel fifo API is not very widely used, because it has to\nmany constrains.  Only 17 files in the current 2.6.31-rc5 used it.\nFIFO\u0027s are like list\u0027s a very basic thing and a kfifo API which handles\nthe most use case would save a lot of development time and memory\nresources.\n\nI think this are the reasons why kfifo is not in use:\n\n - The API is to simple, important functions are missing\n - A fifo can be only allocated dynamically\n - There is a requirement of a spinlock whether you need it or not\n - There is no support for data records inside a fifo\n\nSo I decided to extend the kfifo in a more generic way without blowing up\nthe API to much.  The new API has the following benefits:\n\n - Generic usage: For kernel internal use and/or device driver.\n - Provide an API for the most use case.\n - Slim API: The whole API provides 25 functions.\n - Linux style habit.\n - DECLARE_KFIFO, DEFINE_KFIFO and INIT_KFIFO Macros\n - Direct copy_to_user from the fifo and copy_from_user into the fifo.\n - The kfifo itself is an in place member of the using data structure, this save an\n   indirection access and does not waste the kernel allocator.\n - Lockless access: if only one reader and one writer is active on the fifo,\n   which is the common use case, no additional locking is necessary.\n - Remove spinlock - give the user the freedom of choice what kind of locking to use if\n   one is required.\n - Ability to handle records. Three type of records are supported:\n   - Variable length records between 0-255 bytes, with a record size\n     field of 1 bytes.\n   - Variable length records between 0-65535 bytes, with a record size\n     field of 2 bytes.\n   - Fixed size records, which no record size field.\n - Preserve memory resource.\n - Performance!\n - Easy to use!\n\nThis patch:\n\nSince most users want to have the kfifo as part of another object,\nreorganize the code to allow including struct kfifo in another data\nstructure.  This requires changing the kfifo_alloc and kfifo_init\nprototypes so that we pass an existing kfifo pointer into them.  This\npatch changes the implementation and all existing users.\n\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1796e72291b2b6aafaec5954e666d0b5a95da935",
      "tree": "41432a598971de113b213ff39736b436a97113cc",
      "parents": [
        "b20d038dff877566694181578c49c31616d622cd"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Nov 11 16:34:36 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:39 2009 -0600"
      },
      "message": "[SCSI] libiscsi: hook into ramp up/down handling\n\nIt is rare to get a queue full with iscsi, because targets seem to\njust reduce the iscsi cmd window. However, there is at least\none iscsi target that will throw a queue full when overloaded.\nThis hooks the iscsi code in to the ramp up/down code, so we\ncan handle it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "3fe5ae8b4c4d3a82c755074878da7ddb9dde381e",
      "tree": "2565bc75ba1ab288cff50d4290eca8312f87bb04",
      "parents": [
        "5d12c05e29fc8715e3e32f57a8cced9290d87c55"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Nov 11 16:34:33 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:36 2009 -0600"
      },
      "message": "[SCSI] libiscsi: add warm target reset tmf support\n\nThis implements warm target reset tmf support for\nthe scsi-ml target reset callback. Previously we would\njust drop the session in that callback. This patch will\nnow try a target reset and if that fails drop the session.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "5d12c05e29fc8715e3e32f57a8cced9290d87c55",
      "tree": "e73691cdb5a2a52a9b56ad9f06183f49bb4e3d49",
      "parents": [
        "4f704dc03297406ea5d53b85c4666c60f69000bf"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Nov 11 16:34:32 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:36 2009 -0600"
      },
      "message": "[SCSI] libiscsi: Check TMF state before sending PDU\n\nPatch and mail from both MikeC and HannesR:\n\nBefore we\u0027re trying to send a PDU we have to check whether a TMF\nis active. If so and if the PDU will be affected by the TMF\nwe should allow only Data-out PDUs to be sent.\n\nIf fast_abort is set, no Data-out PDUs will be sent while\na LUN reset is being processed for a affected LUN.\n\nfast_abort is now ingored during a ABORT TASK tmf. We will not\nsend any Data-outs for a task if the task is being aborted.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4f704dc03297406ea5d53b85c4666c60f69000bf",
      "tree": "ee226b0502ab1b5ad5473615aab004dd2ba0a851",
      "parents": [
        "24246de77503978cfcd7e76f06404e60e399992f"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Nov 11 16:34:31 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:01:35 2009 -0600"
      },
      "message": "[SCSI] libiscsi: fix login/text checks in pdu injection code\n\nFor some reason we used to check for the the immediate bit\nset and the opcocde in many places instead of just masking\nthe opcode. In the passthrough code this is a problem\nbecause userspace may or may not have set the immediate bit\nand it does not have to. This fixes up the opcode checks\nin the passthrough code, so we mask off the opcode then\ncheck against the iscsi proto definition like is done in\nother places.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e881a172dac4d9ea3b2a1540041d872963c269bd",
      "tree": "9eb1f344b107806c0041c4e0a64192a055117289",
      "parents": [
        "dbf9bfe615717d1145f263c0049fe2328e6ed395"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Oct 15 17:46:39 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:41 2009 -0600"
      },
      "message": "[SCSI] modify change_queue_depth to take in reason why it is being called\n\nThis patch modifies scsi_host_template-\u003echange_queue_depth so that\nit takes an argument indicating why it is being called. This will be\nused so that if a LLD needs to do some extra processing when\nhandling queue fulls or later ramp ups, it can do so.\n\nThis is a simple port of the drivers setting a change_queue_depth\ncallback. In the patch I just have these LLDs adjust the queue depth\nif the user was requesting it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\n\n[Vasu.Dev: v2\n\tAlso converted pmcraid_change_queue_depth and then verified\nall modules compile  using \"make allmodconfig\" for any new build\nwarnings on X86_64.\n\n\tUpdated original description after combing two original\npatches from Mike to make this patch git bisectable.]\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\n[jejb: fixed up 53c700]\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "b8b9e1b8128d8854cf55740f9ceba3010143520d",
      "tree": "b4043ea1ac0d8bd8602628fcb48ffac7ffe8bdbf",
      "parents": [
        "6733b39a1301b0b020bbcbf3295852e93e624cb1"
      ],
      "author": {
        "name": "Jayamohan Kallickal",
        "email": "jayamohank@serverengines.com",
        "time": "Tue Sep 22 08:21:22 2009 +0530"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Oct 02 14:01:39 2009 -0500"
      },
      "message": "[SCSI] libiscsi: iscsi_session_setup to allow for private space\n\nThis patch contains changes that allow iscsi_session_setup\nto allocate private space for LLD\u0027s\n\nSigned-off-by: Jayamohan Kallickal \u003cjayamohank@serverengines.com\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "661134ad3765348ecd6150a92e736bf28ba40f80",
      "tree": "48e36c4995421964faa322a5a313793e481edb55",
      "parents": [
        "4c0ba5d2593b5156327263f3ef6d7399dc0717b8"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Sat Sep 05 07:35:33 2009 +0530"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 12 09:35:33 2009 -0500"
      },
      "message": "[SCSI] libiscsi, bnx2i: make bound ep check common\n\nbnx2i currently has a check for if a ep is properly bound, so if\niscsi_queuecommand/xmit_task is called while there is no ep\nwe will not queue IO.\n\nbe2iscsi sends IO from queuecommand/xmit_task like how bnx2i does\nand needs a similar test. This patch has us just use the suspend_bit\ntest for this.\n\nWhen ep_poll has succeeed iscsid will call conn_bind, the LLD will\nthen call iscsi_conn_bind which will clear the suspend bit.\nWhen ep_disconnect is called (or if there is a conn error) we set\nthe suspend bit. For the ep_disconnect case I am adding a helper\nin this patch that will take the session lock to make sure\niscsi_queuecommand/xmit_task is not running and it will set\nthe suspend bit.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Jayamohan Kallickal \u003cjayamohank@serverengines.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4c0ba5d2593b5156327263f3ef6d7399dc0717b8",
      "tree": "2870f60c768f004f54aaf9d140612667edea4100",
      "parents": [
        "dd784edcfc080fb4c83f1f3d10d905c5ab61616f"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Sat Sep 05 07:34:23 2009 +0530"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 12 09:35:33 2009 -0500"
      },
      "message": "[SCSI] libiscsi: add completion function for drivers that do not need pdu processing\n\nbeiscsi does not need the iscsi scsi cmd processing. It does not\neven get this info on the completion path. This adds a function\nto just update the sequencing numbers and complete a task.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Jayamohan Kallickal \u003cjayamohank@serverengines.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "70b31c152dc49ef70bd2b34ad53ccbd9bb4116d4",
      "tree": "9d3c857ed4604b7843a0bec05e85afb095228082",
      "parents": [
        "d1af8a328755f51c9b76157a8692e56520d3fd94"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Aug 20 15:11:03 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 05 09:42:48 2009 -0500"
      },
      "message": "[SCSI] libiscsi, iscsi_tcp: check suspend bit before each call to xmit_task\n\nIf we had multiple tasks on the cmd or requeue  lists, and iscsi_tcp\nreturns a error, the write_space function can still run and queue\niscsi_data_xmit. If it was a legetimate problem and iscsi_conn_failure\nwas run but we raced and iscsi_data_xmit was run first it could miss\nthe suspend bit checks, and start trying to send data again and hit\nanother timeout. A similar problem is present when using cxgb3i.\n\nThis has libiscsi check the suspend bit before calling the xmit\ntask callout, so we at least do not try sending multiple tasks\n(one could be sent).\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "8afa1439fcff58da8f28c1d083046f229f6ab3de",
      "tree": "ef09869134e5aadbc883762b4b1668619229463a",
      "parents": [
        "d3305f3407fa3e9452079ec6cc8379067456e4aa"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Aug 20 15:10:59 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 05 09:42:42 2009 -0500"
      },
      "message": "[SCSI] libiscsi: handle immediate command rejections\n\nIf we sent multiple pdus as immediate the target could be\nrejecting some and we have just been dropping the rejection\nnotification. This adds code to handle nop-out rejections,\nso if a nop-out was sent as a ping and rejected we do not\nmark the connection bad. Instead we just clean up the timers\nsince we have pdu making a rount trip we know the connection\nis good.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "d3305f3407fa3e9452079ec6cc8379067456e4aa",
      "tree": "8e8abaea070305d25d9de788dd07e5cdbd8b6f83",
      "parents": [
        "523eeac6703a995d58918aaf321f128f75c13108"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Aug 20 15:10:58 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 05 09:42:41 2009 -0500"
      },
      "message": "[SCSI] libiscsi: don\u0027t increment cmdsn if cmd is not sent\n\nWe increment session-\u003ecmdsn at the top of iscsi_prep_scsi_cmd_pdu, but\nif the prep  ecb or prep bidi or init_task calls fails then we leave the\nsession-\u003ecmdsn incremented. This moves the cmdsn manipulation to the end\nof the function when we know it has succeeded.\n\nIt also adds a session-\u003ecmdsn--; in queuecommand for if a driver like\nbnx2i tries to send a a task from that context but it fails. We do not\nhave to do this in the xmit thread context because that code will retry\nthe same task if the initial call fails.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "6187c242089d334102be76427a5a020240e6c19a",
      "tree": "0817274791e861500ce50a4107fefd8742501a10",
      "parents": [
        "a11a52be115889a5d1f738ed2e154807bceed4ee"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Jul 15 15:02:57 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jul 30 08:49:59 2009 -0500"
      },
      "message": "[SCSI] libiscsi: disable bh in and abort handler.\n\nThe session lock can be held in the scsi eh thread or the completion\npaths run from the net softirq. This disables bhs in iscsi_eh_abort when\ntaking the session lock.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bd2199d417313a056d4d2b2bac852231e1b50a4e",
      "tree": "7ff88e6be26be91e822cebf81cce261e8dc08db5",
      "parents": [
        "32382492eb18e8e20be382a1743d0c08469d1e84"
      ],
      "author": {
        "name": "Erez Zilber",
        "email": "erezzi.list@gmail.com",
        "time": "Mon Jun 15 22:11:10 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jun 21 10:52:41 2009 -0500"
      },
      "message": "libiscsi: add conn and scsi eh log debug flags\n\nAllow the user to control the debug logs in libiscsi. We will now\nhave a module param for connection, session \u0026 error handling.\n\n[Mike Christie - Fixed up to compile on current code and added\nmissing ISCSI_DBG_EH conversions]\n\nSigned-off-by: Erez Zilber \u003cerezzi.list@gmail.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d355e57d58193b89283b0c8153649f0427b0bdad",
      "tree": "3b0abe01d5f384474b32d6606e1a4f57230a1f13",
      "parents": [
        "9194c6264040d71f851236437a392594b26e5b91"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Mon Jun 15 22:11:08 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jun 21 10:52:39 2009 -0500"
      },
      "message": "libiscsi: don\u0027t run scsi eh if iscsi task is making progress\n\nIf we are sending or receiving data for the task successfully do\nnot run the scsi eh, because we know the task is making progress.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4421c9ebeeacf3d9c4e6aa558e1a777178e71add",
      "tree": "a8031ee02bcb91fa3b3793689b9277a92d2ac830",
      "parents": [
        "b3cd5050bf8eb32ceecee129cac7c59e6f1668c4"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:50 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:13 2009 -0500"
      },
      "message": "[SCSI] libiscsi: add debug printks for iscsi command completion path\n\nThis patch just adds some debug statements for the abort\nand completion paths.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b3cd5050bf8eb32ceecee129cac7c59e6f1668c4",
      "tree": "5aa4999dd1c5c7fe83354f3965764f0849afaff3",
      "parents": [
        "1336aed10b8af791378b017f0fa8da4e5b827b8d"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:49 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:13 2009 -0500"
      },
      "message": "[SCSI] libiscsi: add task aborted state\n\nIf a task did not complete normally due to a TMF, libiscsi will\nnow complete the task with the state ISCSI_TASK_ABRT_TMF. Drivers\nlike bnx2i that need to free resources if a command did not complete normally\ncan then check the task state. If a driver does not need to send\na special command if we have dropped the session then they can check\nfor ISCSI_TASK_ABRT_SESS_RECOV.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1336aed10b8af791378b017f0fa8da4e5b827b8d",
      "tree": "6b61863e6bfb219363a705155defe36f75390865",
      "parents": [
        "301e0f7e4d78e956c58b66888e134dbdb44ea28e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:48 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:12 2009 -0500"
      },
      "message": "[SCSI] libiscsi: check if iscsi host has work queue before queueing work\n\nInstead of having libiscsi check if the offload bit is set, have\nit check if the lld created a work queue. I think this is more\nclear.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "301e0f7e4d78e956c58b66888e134dbdb44ea28e",
      "tree": "89e346f0cc6613629a08ef0f9385071e3d56449f",
      "parents": [
        "3bbaaad95fd38dedb7c66a601f14825b4e0c5a59"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:47 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:12 2009 -0500"
      },
      "message": "[SCSI] libiscsi: don\u0027t let io sit in queue when session has failed\n\nIf the session is failed, but we have not yet fully transitioned\nto the recovery stage we were still queueuing IO. The idea is\nthat for some failures we can recvover at the command level\nand still continue to execute other IO. Well, we never have\nadded the recovery within a command code, so queueing up IO here\njust creates the possibility that it might time time out so\nthis just has us requeue the IO the scsi layer for now.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "3bbaaad95fd38dedb7c66a601f14825b4e0c5a59",
      "tree": "1e149ff38906956227e41722947d48f289f2c488",
      "parents": [
        "4c48a82935f833d94fcf44c2b0c5d2922acfc77a"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:46 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:12 2009 -0500"
      },
      "message": "[SCSI] libiscsi: handle cleanup task races\n\nbnx2i needs to send a hardware specific cleanup command if\na command has not completed normally (iscsi/scsi response from\ntarget), and the session is still ok (this is the case when we\nsend a TMF to stop the command).\n\nAt this time it will need to drop the session lock. The problem\nwith the current code is that fail_all_commands assumes we\nwill hold the lock the entire time, so it uses list_for_each_entry_safe.\nIf while bnx2i drops the session lock multiple cmds complete then\nlist_for_each_entry_safe will not handle this correctly.\n\nThis patch removes the running lists and just has us loop over\nthe cmds array (in later patches we will then replace that\narray with a block tag map at the session level). It also fixes\nup the completion path so that if the TMF code and the normal recv\npath were completing the same command then they both do not try\nto do release the refcount taken when the task is queued.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4c48a82935f833d94fcf44c2b0c5d2922acfc77a",
      "tree": "cc735d1d55feacc515155be528380cc60ce8f1a8",
      "parents": [
        "d1acfae514425d680912907c6554852f1e258551"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:45 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:11 2009 -0500"
      },
      "message": "[SCSI] libiscsi: fix iscsi transport checks to account for slower links\n\nIf we have not got any pdus for recv_timeout seconds, then we will\nsend a iscsi ping/nop to make sure the target is still around. The\nproblem is if this is a slow link, and the ping got queued after\nthe data for a data_out (read), then the transport code could think\nthe ping has failed when it is just slowly making its way through\nthe network. This patch has us check if we are making progress while\nthe nop is outstanding. If we are still reading in data, then we\ndo not fail the session at that time.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "26013ad4c43f49a038a6489c35e9b901491339fe",
      "tree": "c5f9b4a8c73de58b08ac9c072b81d27de3e1dd3b",
      "parents": [
        "edbc9aa0580c0aca96ac8d11bfb2defa81d91bb3"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:43 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:11 2009 -0500"
      },
      "message": "[SCSI] libiscsi: fix nop response/reply and session cleanup race\n\nIf we are responding to a nop from the target by sending our nop,\nand the session is getting torn down, then iscsi_start_session_recovery\ncould set the conn stop bits while the recv path is sending the nop\nresponse and we will hit the bug ons in __iscsi_conn_send_pdu.\n\nThis has us check the state in __iscsi_conn_send_pdu and fail all\nincoming mgmt IO if we are  not logged in and if the pdu is not login\nrelated. It also changes the ordering of the setting of conn stop state\nbits so they are set after the session state is set (both are set under\nthe session lock).\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "edbc9aa0580c0aca96ac8d11bfb2defa81d91bb3",
      "tree": "c8ee53b24f853af3352083c0a6e0412ca5d407a2",
      "parents": [
        "8f9256cea10ca43ac80f66e176643eb41db34244"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:42 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:10 2009 -0500"
      },
      "message": "[SCSI] libiscsi: have iscsi_data_in_rsp call iscsi_update_cmdsn\n\nThis has iscsi_data_in_rsp call iscsi_update_cmdsn when a pdu is\ncompleted like is done for other pdu\u0027s that are don.\n\nFor libiscsi_tcp, this means that it calls iscsi_update_cmdsn when\nit is handling the pdu internally to only transfer data, but if there is\nstatus then it does not need to call it since the completion handling\nwill do it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8f9256cea10ca43ac80f66e176643eb41db34244",
      "tree": "041a928f5ad598c60c9b9934a22c5714cc92170d",
      "parents": [
        "5700b1af93388544843a453e3c68f8f928bd1e88"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:41 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:10 2009 -0500"
      },
      "message": "[SCSI] libiscsi: export iscsi_itt_to_task for bnx2i\n\nbnx2i needs to be able to look up mgmt task like login and nop, because\nit does some processing of them on the completion path. This exports\niscsi_itt_to_task so it can look up the task.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "5700b1af93388544843a453e3c68f8f928bd1e88",
      "tree": "6c0ea7141990b88b8147e7e35d1f7ed8ebb0baa5",
      "parents": [
        "184b57c630c86d35b7f92d4b6545fdf07647c5d5"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:40 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:10 2009 -0500"
      },
      "message": "[SCSI] libiscsi: handle param allocation failures\n\nIf we could not allocate the initiator name or some other id like\nthe hwaddress or netdev, then userspace could deal with the failure\nby just running in a dregraded mode.\n\nNow we want to be able to switch values for the params and we\nwant some feedback, so this patch will check if a string like\nthe initiatorname could not be allocated and return an error.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "184b57c630c86d35b7f92d4b6545fdf07647c5d5",
      "tree": "d6e46048015ccfefec0f47662d2202e5dc26d6fb",
      "parents": [
        "10eb0f013c63c71c82ede77945a5f390c10cfda6"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 13 17:57:39 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 23 15:44:09 2009 -0500"
      },
      "message": "[SCSI] libiscsi: check of LLD has a alloc pdu callout.\n\nbnx2i does not have one. It currently preallocates the bdt\nwhen the session is setup.\n\nWe probably want to change that to a dma pool, then allocate from\nthe pool in the alloc pdu. Until then check if there is a alloc\npdu callout.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6b5d6c443a9b4fd71b633cef66b5db4de8a85787",
      "tree": "6b0ca6eaba58d51d3a0715ba9be40bf5449b40ed",
      "parents": [
        "9a6510eb3f030cedba32664498a610dc6d084d46"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Apr 21 15:32:32 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 10:09:54 2009 -0500"
      },
      "message": "[SCSI] cxgb3i, iser, iscsi_tcp: set target can queue\n\nSet target can queue limit to the number of preallocated\nsession tasks we have.\n\nThis along with the cxgb3i can_queue patch will fix a throughput\nproblem where it could only queue one LU worth of data at a time.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "fd6e1c14b73dbab89cb76af895d5612e4a8b5522",
      "tree": "d1a11b7f5e46881dd01c6203f31cc36a2e266151",
      "parents": [
        "5b2639d59afe0a30e1b955b23c52ee9099888058"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Wed Apr 01 13:11:29 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:23:14 2009 -0500"
      },
      "message": "[SCSI] libiscsi: fix iscsi pool error path\n\nLe lundi 30 mars 2009, Chris Wright a écrit :\n\u003e q-\u003equeue could be ERR_PTR(-ENOMEM) which will break unwinding\n\u003e on error.  Make iscsi_pool_free more defensive.\n\u003e\n\nMaking the freeing of q-\u003equeue dependent on q-\u003epool being set looks\nreally weird (although it is correct at the moment. But this seems\nto be fixable in a much simpler way.\n\nWith the benefit that only the error case is slowed down. In both\ncases we have a problem if q-\u003equeue contains an error value but it\u0027s\nnot -ENOMEM. Apparently this can\u0027t happen today, but it doesn\u0027t feel\nright to assume this will always be true. Maybe it\u0027s the right time\nto fix this as well.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "728996829b3e2a3bbacb7390e6c040dd839cdf21",
      "tree": "e2e0b41faa980aeb78c0cd407dec26c73a8c7514",
      "parents": [
        "5e7facb77ff4b6961d936773fb1f175f7abf76b7"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Mar 05 14:46:07 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:29:54 2009 -0500"
      },
      "message": "[SCSI] libiscsi: fix possbile null ptr session command cleanup\n\nIf the iscsi eh fires when the current task is a nop, then\nthe task-\u003esc pointer is null. fail_all_commands could\nthen try to do task-\u003esc-\u003edevice and oops. We actually do\nnot need to access the curr task in this path, because\nif it is a cmd task the fail_command call will handle\nthis and if it is mgmt task then the flush of the mgmt\nqueues will handle that.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "40a06e755d8524cd0b24f795e8bdce5ad19fc41b",
      "tree": "63e2ecb26254460fcadaaea612e5ab411625ba13",
      "parents": [
        "4d1083509a69a36cc1394f188b7b8956e5526a16"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Mar 05 14:46:05 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:29:12 2009 -0500"
      },
      "message": "[SCSI] libiscsi: pass session failure a session struct\n\nThe api for conn and session failures is akward because\none takes a conn from the lib and one takes a session\nfrom the class. This syncs up the interfaces to use\nstructs from the lib.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4d1083509a69a36cc1394f188b7b8956e5526a16",
      "tree": "7afdc7d1e1ae88ee5199d57d3fc8952f985620b7",
      "parents": [
        "32ae763e3fce4192cd008956a340353a2e5c3192"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Mar 05 14:46:04 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:28:55 2009 -0500"
      },
      "message": "[SCSI] iscsi lib: remove qdepth param from iscsi host allocation\n\nThe qdepth setting was useful when we needed libiscsi to verify\nthe setting. Now we just need to make sure if older tools\npassed in zero then we need to set some default.\n\nSo this patch just has us use the sht-\u003ecmd_per_lun or if\nfor LLD does a host per session then we can set it on per\nhost basis.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "32ae763e3fce4192cd008956a340353a2e5c3192",
      "tree": "af13b359c4e54fe60c8eb76c8927b41468dcbe57",
      "parents": [
        "06d25af4edb60f9e9c7e74d342a6963a32e3392f"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Mar 05 14:46:03 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:28:37 2009 -0500"
      },
      "message": "[SCSI] iscsi lib: have lib create work queue for transmitting IO\n\nWe were using the shost work queue which ended up being\na little akward since all iscsi hosts need a thread for\nscanning, but only drivers hooked into libiscsi need\na workqueue for transmitting. So this patch moves the\nxmit workqueue to the lib.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "e28f3d5b51ed07d822f135cd941b01e2d485270e",
      "tree": "e64637e1e4f3bf6921f91729b6f299165929d6df",
      "parents": [
        "c93f87c727ad4e6a5d94cfab219b1492ccc5ca5e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Mar 05 14:46:01 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:28:06 2009 -0500"
      },
      "message": "[SCSI] libiscsi: don\u0027t cap queue depth in iscsi modules\n\nThere is no need to cap the queue depth in the modules. We set\nthis in userspace and can do that there. For performance testing\nwith ram based targets, this is helpful since we can have very\nhigh queue depths.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1b2c7af877f427a2b25583c9033616c9ebd30aed",
      "tree": "9093ff19581e0366567ec359b3f41bc70f239f99",
      "parents": [
        "48a237a26db0a31404c83a88e984b37a30ddcf5a"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Mar 05 14:45:58 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:27:09 2009 -0500"
      },
      "message": "[SCSI] libiscsi: replace scsi_debug logging with session/conn logging\n\nThis makes the logging a compile time option and replaces\nthe scsi_debug macro with session and connection ones\nthat print out a driver model id prefix.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f474a37bc48667595b5653a983b635c95ed82a3b",
      "tree": "e8c61e0d9c09eb96eda58a2c68ede724e94d5879",
      "parents": [
        "07c00ec449d4d94042063a6900d7d04fdc9f8e62"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Thu Mar 05 14:45:55 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 13 15:25:53 2009 -0500"
      },
      "message": "[SCSI] libiscsi: fix iscsi pool error path\n\nMemory freeing in iscsi_pool_free() looks wrong to me. Either q-\u003epool\ncan be NULL and this should be tested before dereferencing it, or it\ncan\u0027t be NULL and it shouldn\u0027t be tested at all. As far as I can see,\nthe only case where q-\u003epool is NULL is on early error in\niscsi_pool_init(). One possible way to fix the bug is thus to not\ncall iscsi_pool_free() in this case (nothing needs to be freed anyway)\nand then we can get rid of the q-\u003epool check.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "308cec14e6710b4d5b70e9778ce117be8371735d",
      "tree": "20afec7cf7251117026c703ba97f4d3aa8ceaa7f",
      "parents": [
        "7f977ddd0eedfd5aac7865794f220f65aae8f361"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Fri Feb 06 12:06:20 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Feb 10 11:15:19 2009 -0500"
      },
      "message": "[SCSI] libiscsi: Fix scsi command timeout oops in iscsi_eh_timed_out\n\nYanling Qi from LSI found the root cause of the panic, below is his\nanalysis:\n\nProblem description: the open iscsi driver installs eh_timed_out handler\nto the\nblank_transport_template of the scsi middle level that causes panic of\ntimed\nout command of other host\n\nHere are the details\n\nIscsi Session creation\n\nDuring iscsi session creation time, the iscsi_tcp_session_create() of\niscsi_tpc.c will create a scsi-host for the session. See the statement\nmarked\nwith the label A. The statement B replaces the shost-\u003etransportt point\nwith a\nlocal struct variable.\n\nstatic struct iscsi_cls_session *\niscsi_tcp_session_create(struct iscsi_endpoint *ep, uint16_t cmds_max,\n                         uint16_t qdepth, uint32_t initial_cmdsn,\n                         uint32_t *hostno)\n{\n        struct iscsi_cls_session *cls_session;\n        struct iscsi_session *session;\n        struct Scsi_Host *shost;\n        int cmd_i;\n        if (ep) {\n                printk(KERN_ERR \"iscsi_tcp: invalid ep %p.\\n\", ep);\n                return NULL;\n        }\n\nA        shost \u003d iscsi_host_alloc(\u0026iscsi_sht, 0, qdepth);\n\n        if (!shost)\n\n                return NULL;\n\nB         shost-\u003etransportt \u003d iscsi_tcp_scsi_transport;\n\n        shost-\u003emax_lun \u003d iscsi_max_lun;\n\nPlease note the scsi host is allocated by invoking isccsi_host_alloc()\nin\nlibiscsi.c\n\nPolluting the middle level blank_transport_template in\niscsi_host_alloc() of\nlibiscsi.c\n\nThe iscsi_host_alloc() invokes the middle level function\nscsi_host_alloc() in\nhosts.c for allocating a scsi_host. Then the statement marked with C\nassigns\nthe iscsi_eh_cmd_timed_out handler to the eh_timed_out callback\nfunction.\n\nstruct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht,\n\n                                   int dd_data_size, uint16_t qdepth)\n\n{\n        struct Scsi_Host *shost;\n        struct iscsi_host *ihost;\n        shost \u003d scsi_host_alloc(sht, sizeof(struct iscsi_host) +\ndd_data_size);\n        if (!shost)\n                return NULL;\n\n C      shost-\u003etransportt-\u003eeh_timed_out \u003d iscsi_eh_cmd_timed_out;\n\nPlease note the shost-\u003etransport is the middle level\nblank_transport_template\nas shown in the code segment below. We see two problems here. 1.\niscsi_eh_cmd_timed_out is installed to the blank_transport_template that\nwill\ncause some body else problem. 2. iscsi_eh_cmd_timed_out will never be\ninvoked\nwhen iscsi command gets timeout because the statement B resets the\npointer.\n\nMiddle level blank_transport_template\n\nIn the middle level function scsi_host_alloc() of hosts.c, the middle\nlevel\nassigns a blank_transport_template for those hosts not implementing its\ntransport layer. All HBAs without supporting a specific scsi_transport\nwill\nshare the middle level blank_transport_template. Please see the\nstatement D\n\nstruct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int\nprivsize)\n\n{\n        struct Scsi_Host *shost;\n        gfp_t gfp_mask \u003d GFP_KERNEL;\n        int rval;\n        if (sht-\u003eunchecked_isa_dma \u0026\u0026 privsize)\n                gfp_mask |\u003d __GFP_DMA;\n\n         shost \u003d kzalloc(sizeof(struct Scsi_Host) + privsize, gfp_mask);\n        if (!shost)\n                return NULL;\n\n        shost-\u003ehost_lock \u003d \u0026shost-\u003edefault_lock;\n\n        spin_lock_init(shost-\u003ehost_lock);\n\n        shost-\u003eshost_state \u003d SHOST_CREATED;\n\n        INIT_LIST_HEAD(\u0026shost-\u003e__devices);\n\n        INIT_LIST_HEAD(\u0026shost-\u003e__targets);\n\n        INIT_LIST_HEAD(\u0026shost-\u003eeh_cmd_q);\n\n        INIT_LIST_HEAD(\u0026shost-\u003estarved_list);\n\n        init_waitqueue_head(\u0026shost-\u003ehost_wait);\n\n        mutex_init(\u0026shost-\u003escan_mutex);\n\n        shost-\u003ehost_no \u003d scsi_host_next_hn++; /* XXX(hch): still racy */\n\n        shost-\u003edma_channel \u003d 0xff;\n\n        /* These three are default values which can be overridden */\n\n        shost-\u003emax_channel \u003d 0;\n\n        shost-\u003emax_id \u003d 8;\n\n        shost-\u003emax_lun \u003d 8;\n\n        /* Give each shost a default transportt */\n\n D       shost-\u003etransportt \u003d \u0026blank_transport_template;\n\nWhy we see panic at iscsi_eh_cmd_timed_out()\n\nThe mpp virtual HBA doesn’t have a specific scsi_transport. Therefore,\nthe\nblank_transport_template will be assigned to the virtual host of the MPP\nvirtual HBA by SCSI middle level. Please note that the statement C has\nassigned\niscsi-transport eh_timedout handler to the blank_transport_template.\nWhen a mpp\nvirtual command gets timedout, the iscsi_eh_cmd_timed_out() will be\ninvoked to\nhandle mpp virtual command timeout from the middle level\nscsi_times_out()\nfunction of the scsi_error.c.\n\nenum blk_eh_timer_return scsi_times_out(struct request *req)\n\n{\n\n        struct scsi_cmnd *scmd \u003d req-\u003especial;\n\n        enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);\n\n        enum blk_eh_timer_return rtn \u003d BLK_EH_NOT_HANDLED;\n\n        scsi_log_completion(scmd, TIMEOUT_ERROR);\n\n        if (scmd-\u003edevice-\u003ehost-\u003etransportt-\u003eeh_timed_out)\n\n E               eh_timed_out \u003d\nscmd-\u003edevice-\u003ehost-\u003etransportt-\u003eeh_timed_out;\n\n        else if (scmd-\u003edevice-\u003ehost-\u003ehostt-\u003eeh_timed_out)\n\n                eh_timed_out \u003d scmd-\u003edevice-\u003ehost-\u003ehostt-\u003eeh_timed_out;\n\n        else\n\n                eh_timed_out \u003d NULL;\n\n        if (eh_timed_out) {\n\n                rtn \u003d eh_timed_out(scmd);\n\nIt is very easy to understand why we get panic in the\niscsi_eh_cmd_timed_out().\nA scsi_cmnd from a no-iscsi device definitely can not resolve out a\nsession and\nsession-\u003elock. The panic can be happed anywhere during the differencing.\n\nstatic enum blk_eh_timer_return iscsi_eh_cmd_timed_out(struct scsi_cmnd\n*scmd)\n\n{\n\n        struct iscsi_cls_session *cls_session;\n\n        struct iscsi_session *session;\n\n        struct iscsi_conn *conn;\n\n        enum blk_eh_timer_return rc \u003d BLK_EH_NOT_HANDLED;\n\n        cls_session \u003d starget_to_session(scsi_target(scmd-\u003edevice));\n\n        session \u003d cls_session-\u003edd_data;\n\n        debug_scsi(\"scsi cmd %p timedout\\n\", scmd);\n\n        spin_lock(\u0026session-\u003elock);\n\nThis patch fixes the problem by moving the setting of the\niscsi_eh_cmd_timed_out to iscsi_add_host, which is after the LLDs\nhave set their transport template to shost-\u003etransportt.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "2f5899a39dcffb404c9a3d06ad438aff3e03bf04",
      "tree": "e0c8848026a2d89e7d1b1519bee6a791e940b6f3",
      "parents": [
        "f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Fri Jan 16 12:36:51 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jan 25 07:54:37 2009 -0600"
      },
      "message": "[SCSI] libiscsi: fix iscsi pool leak\n\nI am not sure what happened. It looks like we have always leaked\nthe q-\u003equeue that is allocated from the kfifo_init call. nab finally\nnoticed that we were leaking and this patch fixes it by adding a\nkfree call to iscsi_pool_free. kfifo_free is not used per kfifo_init\u0027s\ninstructions to use kfree.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ae15f80172d95f978b60d40408353943d5bc099b",
      "tree": "c520477e90c974e2d165187ba8ee3ad7ec8c7375",
      "parents": [
        "2ff79d52d56eebcffd83e9327b89d7daedf1e897"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Dec 02 00:32:15 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:23 2008 -0600"
      },
      "message": "[SCSI] libiscsi: handle init task failures.\n\nMgmt setup used to not fail so we did not have to check\nthe return value. Now with cxgb3i it can so this has us\npass up a error.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "2ff79d52d56eebcffd83e9327b89d7daedf1e897",
      "tree": "66746804ba4965f7ffdc9ed32ce2f8c29e8dbac9",
      "parents": [
        "262ef63627977acb7d8dd38c4f0f290bf49fbbfd"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Dec 02 00:32:14 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:23 2008 -0600"
      },
      "message": "[SCSI] libiscsi: pass opcode into alloc_pdu callout\n\nWe do not need to allocate a itt for data_out, so this\npasses the opcode to the alloc_pdu callout.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "262ef63627977acb7d8dd38c4f0f290bf49fbbfd",
      "tree": "fc8e01280968470f2d3d122614508fe5e402e0a2",
      "parents": [
        "38e1a8f5479d7d75a68d797c7159f5b7e2ef44e4"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Dec 02 00:32:13 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:22 2008 -0600"
      },
      "message": "[SCSI] libiscsi: allow drivers to modify the itt sent to the target\n\nbnx2i and cxgb3i need to encode LLD info in the itt so that\nthe firmware/hardware can process the pdu. This patch allows\nthe LLDs to encode info in the task-\u003ehdr-\u003eitt that they\nsetup in the alloc_pdu callout (any resources that are allocated\ncan be freed with the pdu in the cleanup_task callout). If\nthe LLD encodes info in the itt they should implement a\nparse_pdu_itt callout. If parse_pdu_itt is not implemented\nlibiscsi will do the right thing for the LLD.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "cfeb2cf957ca5b4e557b53fb91ccc52f442f6dbe",
      "tree": "71e1ccecf6626c09f42ae1f324809e504dc60a36",
      "parents": [
        "e2bac7c55e43c9018f2f4daf15437e836b26e709"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Dec 02 00:32:09 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:21 2008 -0600"
      },
      "message": "[SCSI] libiscsi: change login data buffer allocation\n\nThis modifies the login buffer allocation to use __get_free_pages.\nIt will allow drivers that want to send this data with zero copy\noperations to easily line things up on page boundaries.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "577577da6d197ea3dcf3ee19c4f902fbd3a9390a",
      "tree": "624b991f45dc12da557469daed0deea2bffb47ac",
      "parents": [
        "63c62f1cb980241513c82cacd5b9f878527c6647"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Dec 02 00:32:05 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Dec 29 11:24:20 2008 -0600"
      },
      "message": "[SCSI] libiscsi: prepare libiscsi for new offload engines by modifying unsol data code\n\ncxgb3i offloads data transfers. It does not offload the entire scsi/iscsi\nprocssing like qla4xxx and it does not offload the iscsi sequence\nprocessing like how bnx2i does. cxgb3i relies on iscsi_tcp for the\nseqeunce handling so this changes how we transfer unsolicitied data by\nadding a common r2t struct and helpers.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d3acf0226debeae22d87808f8f298386bd08e391",
      "tree": "c4b63cd902f94d561126d65ff3e56a3c6463fa2d",
      "parents": [
        "b21227c5fcadab206e2a2373e5b288a351919abb"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Mon Dec 01 12:13:00 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Dec 03 10:09:19 2008 -0600"
      },
      "message": "[SCSI] libiscsi REGRESSION: fix passthrough support with older iscsi tools\n\nThis regression was added in 2.6.27, when the mtask and ctask were\nmerged into the the common task struct. The patch applies to\nscsi-rc-fixes, but also applies to 2.6.27 with some offsets.\n\nThe problem is that __iscsi_conn_send_pdu assumes that userspace was\nnot sending nops with the format it is checking for in the \"if\" below.\nIt turns out that older userspace tools are. This patch moves the\nsetting of the internal ping_task tracker (it tracks libiscsi current\noutstanding nop) to iscsi_send_nopout which is only used by kernel callers.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a343914831a8e29d89af3b26495ab1136a9e3153",
      "tree": "986eec7aa0475b32047711a3fe907db66835ce64",
      "parents": [
        "87cd9eab2dfbdf7d367d7ab30e88176d7b08b83e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Sep 24 11:46:15 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:29:01 2008 -0400"
      },
      "message": "libiscsi: fix locking in iscsi_eh_device_reset\n\nWe must be using the bh spin locking functions in\niscsi_eh_device_reset becuase the session lock interacts with\na thread and softirq.\n\nThis patch also fixes up a bogus comment and check in fail_command,\nbecause no one drops the lock (bnx2i did but it is not going\nupstream yet and there were other refcount changes for that).\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "87cd9eab2dfbdf7d367d7ab30e88176d7b08b83e",
      "tree": "7fdb4fadf57405e1e2b596c927c1f7df25aa028c",
      "parents": [
        "6f481e3cefeb33094e87af176587e6a3027f104e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Sep 24 11:46:14 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:29:01 2008 -0400"
      },
      "message": "libiscsi: check reason why we are stopping iscsi session to determine error value\n\nSome wires got crossed on some patches and I messed up in the code\nbelow when rebuilding a patch. We want to be checking if flag\nequaled the value indicating if we killing the session due to\nfinal logout or if we just trying to relogin.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8e12452549ba2dfa17db97bc495172fac221a7ab",
      "tree": "6f1617afb90ad9e5c50698d39bcb2c850feece6a",
      "parents": [
        "21536062d98938dfcfbae593a26c154e359749dc"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Sep 24 11:46:12 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:59 2008 -0400"
      },
      "message": "[SCSI] libiscsi: rename host reset to target reset\n\nI had this in my patchset to add target reset support, but\nit got dropped due to patching conflicts. This initial patch\njust renames the function and users. We are actually just\ndropping the session, and so this does not have anything to do\nwith the host exactly. It does for software iscsi because\nwe allocate a host per session, but for cxgb3i this makes no\nsense.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "e5bd7b54e93ef7151469a12b8c28d863b9f8a088",
      "tree": "b1e63758dc0272346b7d5e9af6435a87fd94a7ad",
      "parents": [
        "1d9edf0270cb5a434d32e95279ce9493581906b3"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Sep 24 11:46:10 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:59 2008 -0400"
      },
      "message": "[SCSI] libiscsi: Support drivers initiating session removal\n\nIf the driver knows when hardware is removed like with cxgb3i,\nbnx2i, qla4xxx and iser then we will want to remove the sessions/devices\nthat are bound to that device before removing the host.\n\ncxgb3i and in the future bnx2i will remove the host and that will\nremove all the sessions on the hba. iser can call iscsi_kill_session\nwhen it gets an event that indicates that a hca is removed.\nAnd when qla4xxx is hooked in to the lib (it is only hooked into\nthe class right now) it can call iscsi remove host like the\npartial offload card drivers.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1d9edf0270cb5a434d32e95279ce9493581906b3",
      "tree": "1b54cdd2c8b18e78a788d7f1f3c17c7b73043c24",
      "parents": [
        "cbdc14459bd7d99d20341ec057b8f4ffab2a7fb6"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed Sep 24 11:46:09 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:58 2008 -0400"
      },
      "message": "[SCSI] libiscsi: fix data corruption when target has to resend data-in packets\n\niscsi_tcp was updating the exp_statsn (exp_statsn acknowledges\nstatus and tells the target it is ok to let the resources for\na iscsi pdu to be reused) before it got all the data for pdu read\ninto OS buffers. Data corruption was occuring if something happens\nto a packet and the network layer requests a retransmit, and the\ninitiator has told the target about the udpated exp_statsn ack,\nthen the target may be sending data from a buffer it has reused\nfor a new iscsi pdu. This fixes the problem by having the LLD\n(iscsi_tcp in this case) just handle the transferring of data, and\nhas libiscsi handle the processing of status (libiscsi completion\nprocessing is done after LLD data transfers are complete).\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "56d7fcfa815564b40a1b0ec7a30ea8cb3bc0713e",
      "tree": "29ad7384a0f2ba5793f6d90d66daee52825f29a8",
      "parents": [
        "a4dfaa6f2e55b736adf2719133996f7e7dc309bc"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Aug 19 18:45:26 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:49 2008 -0400"
      },
      "message": "[SCSI] iscsi class, libiscsi and qla4xxx: convert to new transport host byte values\n\nThis patch converts the iscsi drivers to the new host byte values.\n\nv2\nDrop some conversions. Want to avoid conflicts with other patches.\nv1\ninitial patch.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d6d13ee19da6d291c99f980dcb76f6b7dc676804",
      "tree": "93598458b723bae052d5954feff4f6d78ea4af76",
      "parents": [
        "7b594131c4f38edeb13d8c6c0147949173c47013"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Sun Aug 17 15:24:43 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Oct 13 09:28:47 2008 -0400"
      },
      "message": "[SCSI] libiscsi: Use SCSI_MLQUEUE_TARGET_BUSY\n\nFor the conditions below we do not want the queuecommand\nfunction to call us right back, so return SCSI_MLQUEUE_TARGET_BUSY.\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": "ac26d41dee65167109e7cdcd0289b44ca61cd741",
      "tree": "45f1b872cd3323fe1fbf244a85d91b8e8fd39b14",
      "parents": [
        "a7bbb57333447d0cf950992653b6b079585f3531"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Sat Sep 06 08:39:15 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Oct 03 11:46:16 2008 -0500"
      },
      "message": "[SCSI] libiscsi: return error passed in during iscsi recovery\n\nDue to patch building error on my side, we are still passing DID_BUS_BUSY\nfor commands that are running, when we want to return whatever the caller\nof fail_all_commands wanted. This replaces the hardcoded error code with\nthe value that is passed in.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8e9a20cee4511be4560f9c858d9994eb6913731e",
      "tree": "ccfdb98eb453c5c02c10ac98a9ed5eb141924910",
      "parents": [
        "c95fddc729fafb43f420747027eeb998c2e5e798"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Mon Jun 16 10:11:33 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:29 2008 -0500"
      },
      "message": "[SCSI] libiscsi, iscsi_tcp, ib_iser: fix setting of can_queue with old tools.\n\nThis patch fixes two bugs that are related.\n\n1. Old tools did not set can_queue/cmds_max. This patch modifies\nlibiscsi so that when we add the host we catch this and set it\nto the default.\n\n2. iscsi_tcp thought that the scsi command that was passed to\nthe eh functions needed a iscsi_cmd_task allocated for it. It\nonly needed a mgmt task, and now it does not matter since it\nall comes from the same pool and libiscsi handles this for the\ndrivers. ib_iser had copied iscsi_tcp\u0027s code and set can_queue\nto its max - 1 to handle this. So this patch removes the max -1,\nand just sets it to the max.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8f333991ba8479fe8a9d72aea978db415e3c2f2a",
      "tree": "22dde9fb3dce2915b49e6e15712dcd28a6dec19c",
      "parents": [
        "3a12b199fc820a52b8321c2b35172a1b3651120d"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed May 21 15:54:20 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:23 2008 -0500"
      },
      "message": "[SCSI] scsi: use get_unaligned_* helpers\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "913e5bf435617aa529919a4f7567f849f9f35f9f",
      "tree": "db7357d78d7d6f20358d61bf88a8137ad044a5a5",
      "parents": [
        "3cf7b233ffc45d4fc381221f74d24f10e692c4ea"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:18 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:22 2008 -0500"
      },
      "message": "[SCSI] libiscsi, iser, tcp: remove recv_lock\n\nThe recv lock was defined so the iscsi layer could block\nthe recv path from processing IO during recovery. It\nturns out iser just set a lock to that pointer which was pointless.\n\nWe now disconnect the transport connection before doing recovery\nso we do not need the recv lock. For iscsi_tcp we still stop\nthe recv path incase older tools are being used.\n\nThis patch also has iscsi_itt_to_ctask user grab the session lock\nand has the caller access the task with the lock or get a ref\nto it in case the target is broken and sends a tmf success response\nthen sends data or a response for the command that was supposed to\nbe affected bty the tmf.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "3cf7b233ffc45d4fc381221f74d24f10e692c4ea",
      "tree": "c1bd741628e1e75cf07fa5c47fbdaa9e9f9236ee",
      "parents": [
        "88dfd340b9dece8fcaa1a2d4c782338926c017f7"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:17 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:21 2008 -0500"
      },
      "message": "[SCSI] libiscsi: fix cmds_max setting\n\nDrivers expect that the cmds_max value they pass to the iscsi layer\nis the max scsi commands  + mgmt tasks. This patch implements that\nand fixes some checks for nr cmd limits.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "88dfd340b9dece8fcaa1a2d4c782338926c017f7",
      "tree": "89800910ef8636f00d2c66ce4e83a161087857e6",
      "parents": [
        "06520edea0fc7007985fa4cd51560149feb3f442"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:16 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:21 2008 -0500"
      },
      "message": "[SCSI] iscsi class: Add session initiatorname and ifacename sysfs attrs.\n\nThis adds two new attrs used for creating initiator ports and\nbinding sessions to hardware.\n\nThe session level initiatorname:\n\nSince bnx2i does a scsi_host per host device, we need to add the\niface initiator port settings on the session, so we can create\nmultiple initiator ports (each with different inames) per device/scsi_host.\n\nThe current iname reflects that qla4xxx can have one iname per hba, and we are\nallocating a host per session for software. The iname on the host will\nremain so we can export and set the hba level qla4xxx setting.\n\nThe ifacename attr:\n\nTo bind a session to a some peice of hardware in userspace we maintain\nsome mappings, but during boot or iscsid restart (iscsid contains the user\nspace part of the driver) we need to be able to figure out which of those\nhost mappings abstractions maps to certain sessions. This patch adds\na ifacename attr, which userspace can set to id the host side of the\nendpoint across pivot_roots and iscsid restarts.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "7970634b81a6e3561954517bca42615542c4535b",
      "tree": "e8a6aea24c5db8c1198173b75945746333cdbd4d",
      "parents": [
        "2261ec3d686e35c1a6088ab7f00a1d02b528b994"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:12 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:20 2008 -0500"
      },
      "message": "[SCSI] iscsi class: user device_for_each_child instead of duplicating session list\n\nCurrently we duplicate the list of sessions, because we were using the\ntest for if a session was on the host list to indicate if the session\nwas bound or unbound. We can instead use the target_id and fix up\nthe class so that drivers like bnx2i do not have to manage the target id\nspace.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "9c19a7d0387124a508d2cdb38ebf8cd484631ad0",
      "tree": "3c7022cd03fee32e1eb290396fe780049f095449",
      "parents": [
        "2747fdb25726caa1a89229f43d99ca50af72576a"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:09 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:19 2008 -0500"
      },
      "message": "[SCSI] libiscsi: rename iscsi_cmd_task to iscsi_task\n\nThis is the second part of the iscsi task merging, and\nall it does it rename iscsi_cmd_task to iscsi_task and\nmtask/ctask to just task.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "3e5c28ad0391389959ccae81c938c7533efb3490",
      "tree": "bcfb02dc14afa91dd21fd59ec7c82f881be065c9",
      "parents": [
        "052d014485d2ce5bb7fa8dd0df875dafd1db77df"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:06 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:19 2008 -0500"
      },
      "message": "[SCSI] libiscsi: merge iscsi_mgmt_task and iscsi_cmd_task\n\nThere is no need to have the mgmt and cmd tasks separate\nstructs. It used to save a lot of memory when we overprealocated\nmemory for tasks, but the next patches will set up the\ndriver so in the future they can use a mempool or some other\ncommon scsi command allocator and common tagging.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "052d014485d2ce5bb7fa8dd0df875dafd1db77df",
      "tree": "9bbbe1487e5263db24d69b69df99a4603d4b00d6",
      "parents": [
        "0af967f5d4f2dd1e00618d34ac988037d37a6c3b"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:05 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:18 2008 -0500"
      },
      "message": "[SCSI] libiscsi: modify libiscsi so it supports offloaded data paths\n\nThis patch modifies libiscsi, so drivers like bnx2i and iser can execute\na command from queuecommand/send_pdu instead of having to be queued to\nbe run in a workq.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "0af967f5d4f2dd1e00618d34ac988037d37a6c3b",
      "tree": "08297980d1b6dab820d22c12c7fe1c54602f2486",
      "parents": [
        "b40977d95fb3a1898ace6a7d97e4ed1a33a440a4"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:04 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:18 2008 -0500"
      },
      "message": "[SCSI] libiscsi, iscsi_tcp, iser: add session cmds array accessor\n\nCurrently to get a ctask from the session cmd array, you have to\nknow to use the itt modifier. To make this easier on LLDs and\nso in the future we can easilly kill the session array and use\nthe host shared map instead, this patch adds a nice wrapper\nto strip the itt into a session-\u003ecmds index and return a ctask.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b40977d95fb3a1898ace6a7d97e4ed1a33a440a4",
      "tree": "dfbe7909a066c974f16403e25f687496dde7fb0a",
      "parents": [
        "5af3e91d232b7e022f258202f72ebb79b8b0c706"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:03 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:17 2008 -0500"
      },
      "message": "[SCSI] iser: fix handling of scsi cmnds during recovery.\n\nAfter the stop_conn callback has returned the LLD should not\ntouch the scsi cmds. iscsi_tcp and libiscsi use the\nconn-\u003erecv_lock and suspend_rx field to halt recv path\nprocessing, but iser does not have any protection.\n\nThis patch modifies iser so that userspace can just\ncall the ep_disconnect callback, which will halt\nall recv IO, before calling the stop_conn callback so\nwe do not have to worry about the conn-\u003erecv_lock and\nsuspend rx field. iser just needs to stop the send side\nfrom accessing the ib conn.\n\nFixup to handle when the ep poll fails and ep disconnect\nis called from Erez.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "5d91e209fb21fb9cc765729d4c6a85a9fb6c9187",
      "tree": "870367c290c1392fbe0d3762981553f0e24aa752",
      "parents": [
        "a4804cd6eb19318ae8d08ea967cfeaaf5c5b68a6"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:01 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:16 2008 -0500"
      },
      "message": "[SCSI] iscsi: remove session/conn_data_size from iscsi_transport\n\nThis removes the session and conn data_size fields from the iscsi_transport.\nJust pass in the value like with host allocation. This patch also makes\nit so the LLD iscsi_conn data is allocated with the iscsi_cls_conn.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a4804cd6eb19318ae8d08ea967cfeaaf5c5b68a6",
      "tree": "a69acbfdf4e3646ebb7583f0627b7b7952d13b10",
      "parents": [
        "756135215ec743be6fdce2bdebe8cdb9f8a231f6"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:54:00 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:16 2008 -0500"
      },
      "message": "[SCSI] iscsi: add iscsi host helpers\n\nThis finishes the host/session unbinding, by adding some helpers\nto add and remove hosts and the session they manage.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "756135215ec743be6fdce2bdebe8cdb9f8a231f6",
      "tree": "7eb0a5a23731fcd974f9e5e5d136fe6944d4761c",
      "parents": [
        "32c6e1b9a2e27076b7070a9ec56a9e5437ebd725"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:53:59 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:16 2008 -0500"
      },
      "message": "[SCSI] iscsi: remove session and host binding in libiscsi\n\nbnx2i allocates a host per netdevice but will use libiscsi,\nso this unbinds the session from the host in that code.\n\nThis will also be useful for the iser parent device dma settings\nfixes.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d3826721b198001c55353b1c54e10843068aae63",
      "tree": "7f2348a674da1f0d513c65d6225eea5f49ffff66",
      "parents": [
        "40753caa364bfba60ebd5e2a8bdf366ef175d03c"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 21 15:53:57 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:15 2008 -0500"
      },
      "message": "[SCSI] iscsi class, iscsi drivers: remove unused iscsi_transport attrs\n\nmax_cmd_len and max_conn are not really used. max_cmd_len is\nalways 16 and can be set by the LLD. max_conn is always one\nsince we do not support MCS.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "c8611f975403dd20e6503aff8aded5dcb718f75b",
      "tree": "df1cdd33d074eed300dff8adee29c018428861a2",
      "parents": [
        "4cf1043593db6a337f10e006c23c69e5fc93e722"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu May 08 20:15:34 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu May 08 20:38:57 2008 -0500"
      },
      "message": "[SCSI] libiscsi regression in 2.6.25: fix setting of recv timer\n\nIf the ping tmo is longer than the recv tmo then we could miss a window\nwhere we were supposed to check the recv tmo. This happens because\nthe ping code will set the next timeout for the ping timeout, and if the\nping executes quickly there will be a long chunk of time before the\ntimer wakes up again.\n\nThis patch has the ping processing code kick off a recv\ntmo check when getting a nop in response to our ping.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4cf1043593db6a337f10e006c23c69e5fc93e722",
      "tree": "ea7489898d58d9e8185539a1d484be21d57632ac",
      "parents": [
        "a85591fd0baf4ed3f03ee1aaac6a985e400cf089"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Wed May 07 20:43:52 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu May 08 10:04:54 2008 -0500"
      },
      "message": "[SCSI] libiscsi regression in 2.6.25: fix nop timer handling\n\nThe following patch fixes a bug in the iscsi nop processing.\nThe target sends iscsi nops to ping the initiator and the\ninitiator has to send nops to reply and can send nops to\nping the target.\n\nIn 2.6.25 we moved the nop processing to the kernel to handle\nproblems when the userspace daemon is not up, but the target\nis pinging us, and to handle when scsi commands timeout, but\nthe transport may be the cause (we can send a nop to check\nthe transport). When we added this code we added a bug where\nif the transport timer wakes at the exact same time we are supposed to check\nfor a nop timeout we drop the session instead of checking the transport.\n\nThis patch checks if a iscsi ping is outstanding and if the ping has\ntimed out, to determine if we need to signal a connection problem.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "c07d444407de63b2f414a8be9428f88cadba503f",
      "tree": "4eabbd7adb9130392beb306cc9f1633258749851",
      "parents": [
        "38d1c069db8c87eb6cb10ca1ede9d9b673531ddd"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Fri Apr 18 10:11:52 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 18 11:53:00 2008 -0500"
      },
      "message": "[SCSI] iscsi: bidi support at the generic libiscsi level\n\n- prepare the additional bidi_read rlength header.\n- access the right scsi_in() and/or scsi_out() side of things.\n  also for resid.\n- Handle BIDI underflow overflow from target\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nReviewed-by: Pete Wyckoff \u003cpw@osc.edu\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "38d1c069db8c87eb6cb10ca1ede9d9b673531ddd",
      "tree": "b5e823e2225620f0db342e70e107831e505b9276",
      "parents": [
        "57b7658aed76f1763416878ead9be4ffa288b7a3"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Fri Apr 18 10:11:51 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 18 11:51:19 2008 -0500"
      },
      "message": "[SCSI] iscsi: extended cdb support\n\nSupport for extended CDBs in iscsi.\nAll we need is to check if command spills over 16 bytes then allocate\nan iscsi-extended-header for the leftovers.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nReviewed-by: Pete Wyckoff \u003cpw@osc.edu\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "31ed0bf439a15363c28c7a239f52eb127cb6feb3",
      "tree": "f7d49cc36f8d1852afc7f3b5027a1a2bff269534",
      "parents": [
        "e2396f1e4ecd438a15fa653a028b93e95013caa3"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Tue Feb 26 12:35:23 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Feb 27 15:52:46 2008 -0800"
      },
      "message": "[SCSI] iscsi regression: check for zero max session cmds\n\nThe old tools did not set max session cmds. This is a regression.\nI removed the check when merging the power of 2 patch.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8b1d03434ee44b08c57f50403eaeab099facebf5",
      "tree": "48d7c5aeb3b765284dcc3d8685ed6ea6aed350cb",
      "parents": [
        "322d739da83bbff0309c202181f79c08d9534880"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:53 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] libiscsi: fix session age rollover and remove cid encoding\n\nThe session age mask is only 4 bits, but session-\u003eage is 32. When\nit gets larger then 15 and we try to or the bits some bits get\ndropped and the check for session age in iscsi_verify_itt is useless.\n\nThe ISCSI_CID_MASK related bits are also useless since cid is always\none.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "322d739da83bbff0309c202181f79c08d9534880",
      "tree": "4bbe485dc4f942ac6d5c8ad1c4508599a1eb2c66",
      "parents": [
        "c238c3bba9b422a9b453c75e157b416204f22a71"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:52 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] iscsi: fix up iscsi printk prefix\n\nSome iscsi class messages have the dev_printk prefix and some libiscsi\nand iscsi_tcp messages have \"iscsi\" or the module name as a prefix which\nis normally pretty useless when trying to figure out which session\nor connection the message is attached to. This patch adds iscsi lib\nand class dev_printks so all messages have a common prefix that\ncan be used to figure out which object printed it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "ad294e9cd11d029fc0d09ab129fba5bea46de0dc",
      "tree": "af02c1550725c5e2a20e785ed8cda0ab1f09c6a4",
      "parents": [
        "921601b7031f8a2c71f49f1b965ee00ebbca6886"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:50 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] libiscsi: fix setting of nop timer\n\nIf we rollover then we could get a next_timeout of zero, so we need\nto set the new timer to that value.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6eabafbe6616266e8de61980a7dac5ecc1ba1113",
      "tree": "f5533027fac576acf4db08210ea5815db3a15e50",
      "parents": [
        "84ac86ca8c6787f9efff28bc04b1b65fe0a5c310"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:43 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:34 2008 -0600"
      },
      "message": "[SCSI] iscsi class, libiscsi: add iscsi sysfs session state file\n\nThis adds a iscsi session state file which exports the session\nstate for both software and hardware iscsi. It also hooks libiscsi\nin.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f8d9d654fcc7dd87f5d0b222e233eaab15d650c4",
      "tree": "22514d77f4904b4cf9dabb4321cf763e2afa91fc",
      "parents": [
        "5234e25c35a708708559727b1e3e04de3a538828"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jan 29 00:11:27 2008 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:33 2008 -0600"
      },
      "message": "[SCSI] libiscsi: make __iscsi_complete_pdu() static\n\n__iscsi_complete_pdu() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "118365721768f29d74718a59895ed7bd3c10b68e",
      "tree": "3bd814b509c6b9d1abaf7185d17588b88f208775",
      "parents": [
        "4545a88fc1ae2c0cd1da6e35f3adcbc56ff27b07"
      ],
      "author": {
        "name": "vignesh babu",
        "email": "vignesh.babu@wipro.com",
        "time": "Thu Dec 13 12:43:41 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:51 2008 -0600"
      },
      "message": "[SCSI] libiscsi: use is_power_of_2\n\nReplacing n \u0026 (n - 1) for power of 2 check by is_power_of_2(n)\n\nSigned-off-by: vignesh babu \u003cvignesh.babu@wipro.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "4cd49ea1330c946db00a28819b766062716aa857",
      "tree": "f053941849677858a2280fe676edf199d811648d",
      "parents": [
        "7a53dc52a5f218bf306b875bf0610e851d5a8268"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:38 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:46 2008 -0600"
      },
      "message": "[SCSI] libiscsi, iscsi class: set tmf to a safe default and export in sysfs\n\nOlder tools will not be setting the tmf time outs since they\ndid not exists, so set them to a safe default.\n\nAnd export abort and lu reset timeout values in sysfs.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a8ac6311cc21d78fa284cd43f56df2063f536bf1",
      "tree": "c408dcccab2854dd9dd1775b5971ea60b34127dd",
      "parents": [
        "1040c99d9fd9de2bf00efae6d91014f890575bdb"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Thu Dec 13 12:43:35 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:42 2008 -0600"
      },
      "message": "[SCSI] iscsi: convert xmit path to iscsi chunks\n\nConvert xmit to iscsi chunks.\n\nfrom michaelc@cs.wisc.edu:\n\nBug fixes, more digest integration, sg chaining conversion and other\nsg wrapper changes, coding style sync up, and removal of io fields,\nlike pdu_sent, that are not needed.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1040c99d9fd9de2bf00efae6d91014f890575bdb",
      "tree": "771118c64f009f376affe1bfbdb864dea2580378",
      "parents": [
        "c1635cb786dbadd16fd6e6959dd3b41ae2f2831a"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:34 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:41 2008 -0600"
      },
      "message": "[SCSI] libiscsi: Drop host lock in queuecommand\n\nThe driver does not need the host lock in queuecommand so drop it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "c1635cb786dbadd16fd6e6959dd3b41ae2f2831a",
      "tree": "0f30320469678b00d4f26af15663cf1a8b1f2ff3",
      "parents": [
        "9000bcd649b26aef4c35d2941f8a65f05bbb9ee1"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:33 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:39 2008 -0600"
      },
      "message": "[SCSI] libiscsi: clear conn-\u003ectask when task is completed early\n\nIf the current ctask is failed early, we legt the conn-\u003ectask pointer\npointing to a invalid task. When the xmit thread would send data for\nit, we would then oops.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "9000bcd649b26aef4c35d2941f8a65f05bbb9ee1",
      "tree": "083baa69d22c295dfbc76127604efcda0894d871",
      "parents": [
        "bca1088a8194f4fc850b65ea4f324c15d47d3cc3"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:32 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:38 2008 -0600"
      },
      "message": "[SCSI] libiscsi: Do not fail commands immediately during logout\n\nIf the target requests a logout, then we do not want\nto fail commands to scsi-ml right away. This patch just\nfails in pending commands for a requeue immediately, and then lets\niscsid handle running commands like normal recovery.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f6d5180c78780d63b0577edeb3ce41eeb3e93eea",
      "tree": "95eb44fb84dd7659f816c5f1166c1ae7e2301f5f",
      "parents": [
        "2697478903d0ad8bdbf868b1346ae4b891662bb1"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:30 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:35 2008 -0600"
      },
      "message": "[SCSI] libiscsi: fix nop handling\n\nDuring root boot and shutdown the target could send us nops.\nAt this time iscsid cannot be running, so the target will drop\nthe session and the boot or shutdown will hang.\n\nTo handle this and allow us to better control when to check the network\nthis patch moves the nop handling to the kernel.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "2697478903d0ad8bdbf868b1346ae4b891662bb1",
      "tree": "8b40d774c0a6f33f9320333a20e08fa920f154fc",
      "parents": [
        "bc436b278776d22eb10e7e75bf3e5257d14550a9"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:29 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:33 2008 -0600"
      },
      "message": "[SCSI] libiscsi: fix shutdown\n\nWe were using the device delete sysfs file to remove each device\nthen logout. Now in 2.6.21 this will not work because\nthe sysfs delete file returns immediately and does not wait for\nthe device removal to complete. This causes a hang if a cache sync\nis needed during shutdown. Before .21, that approach had other\nproblems, so this patch fixes the shutdown code so that we remove the target\nand unbind the session before logging out and shut down the session\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bc436b278776d22eb10e7e75bf3e5257d14550a9",
      "tree": "98e3862e44333ef124becb957a0d0cd88ba24ed9",
      "parents": [
        "d8bf541e657824cb03effd726ac96e2f4dcf58a5"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:28 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:31 2008 -0600"
      },
      "message": "[SCSI] libiscsi: grab eh_mutex during host reset\n\nI thought we may not need the eh mutex during host reset, but that is wrong\nwith the new shutdown code. When start_session_recovery sets the state to\nterminate then drops the session lock. The scsi eh thread could then grab the\nsession lock see that we are terminating and then return failed to scsi-ml.\nscsi-ml\u0027s eh then owns the command and will do whatever it wants\nwith it. But then the iscsi eh thread could grab the session lock\nand want to complete the scsi commands that we in the LLD, but\nit no longer owns them and kaboom.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b3a7ea8d50f6028964b468d13a095dfb2508b2fb",
      "tree": "47cc070e1761208e7e6448a0eb8ca3567e27a462",
      "parents": [
        "6320377fd94316e58f75d0be6f6e7a644950a4ee"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Dec 13 12:43:26 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:28 2008 -0600"
      },
      "message": "[SCSI] libiscsi: do not block session during logout\n\nThere is not need to block the session during logout. Since\nwe are going to fail the commands that were blocked just fail them\nimmediately instead.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6320377fd94316e58f75d0be6f6e7a644950a4ee",
      "tree": "7c7b47e6bafae9f25cfd9e1416494b6406c2d0b9",
      "parents": [
        "38ad03de3fd350e683213ddf898a7049534628a8"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Thu Dec 13 12:43:25 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:27 2008 -0600"
      },
      "message": "[SCSI] libiscsi, iscsi_tcp: iscsi pool cleanup\n\niscsi_pool_init simplified\n\niscsi_pool_init currently has a lot of duplicate kfree() calls it does\nwhen some allocation fails. This patch simplifies the code a little by\nusing iscsi_pool_free to tear down the pool in case of an error.\n\niscsi_pool_init also returns a copy of the item array to the caller.\nNot all callers use this array, so we make it optional.\n\nInstead of allocating a second array and return that, allocate just one\narray, of twice the size.\n\nUpdate users of iscsi_pool_{init,free}\n\nThis patch drops the (now useless) second argument to\niscsi_pool_free, and updates all callers.\n\nIt also removes the ctask-\u003er2ts array, which was never\nused anyway. Since the items argument to iscsi_pool_init\nis now optional, we can pass NULL instead.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "38ad03de3fd350e683213ddf898a7049534628a8",
      "tree": "dd543bcfd0c3729be02572e816fe8fd1067ed451",
      "parents": [
        "004d6530f83bee43a55b51bb5960db96e7ae0ffa"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "boazharrosh@gmail.com",
        "time": "Thu Dec 13 12:43:24 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:25 2008 -0600"
      },
      "message": "[SCSI] libiscsi,iser: patch for AHS support\n\n  - The default initialization of hdr_max is the minimum -\n    sizeof(struct iscsi_cmd) - Once this patch goes into iser the default\n    initialization at libiscsi can be removed.\n  - This is not yet full support for AHSs at iser end. But it should be easy.\n    Just allocate more space at iser_desc right after iscsi_hdr. Than\n    at transmission time use ctask-\u003ehdr_len to retrieve the total\n    size of all iscsi pdu headers. See previous patch at iscsi_tcp.[ch]\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "004d6530f83bee43a55b51bb5960db96e7ae0ffa",
      "tree": "a7bb6ffb3e6e89ca6ee9b164d5f19899a0c100dd",
      "parents": [
        "7207fea452cfdd2d4e2f4419e2c31f570edbade3"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 13 12:43:23 2007 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:28:23 2008 -0600"
      },
      "message": "[SCSI] iscsi_tcp, libiscsi: initial AHS Support\n\n  at libiscsi generic code\n  - currently code assumes a storage space of pdu header is allocated\n    at llds ctask and is pointed to by iscsi_cmd_task-\u003ehdr. Here I add\n    a hdr_max field pertaining to that storage, and an hdr_len that\n    accumulates the current use of the pdu-header.\n\n  - Add an iscsi_next_hdr() inline which returns the next free space\n    to write new Header at. Also iscsi_next_hdr() is used to retrieve\n    the address at which to write the header-digest.\n\n  - Add iscsi_add_hdr(length). What the user do is calls iscsi_next_hdr()\n    for address of the new header, than calls iscsi_add_hdr(length) with\n    the size of the new header. iscsi_add_hdr() will check if space is\n    available and update to the new size. length must be padded according\n    to standard.\n\n  - Add 2 padding inline helpers thanks to Olaf. Current patch does not\n    use them but Following patches will.\n    Also moved definition of ISCSI_PAD_LEN to iscsi_proto.h which had\n    PAD_WORD_LEN that was never used anywhere.\n\n  - Let iscsi_prep_scsi_cmd_pdu() signal an Error return since now  it is\n    possible that it will fail.\n\n  - I was tired of yet again writing a \"this is a digest\" comment next to\n    sizeof(__u32) so I defined a new ISCSI_DIGEST_SIZE. Now I don\u0027t need\n    any comments. Changed all places that used sizeof(__u32) or \"4\" in\n    connection to a digest.\n\n  iscsi_tcp specific code\n  - At struct iscsi_tcp_cmd_task allocate maximum space allowed in\n    standard for all headers following the iscsi_cmd header. and mark\n    it so in iscsi_tcp_session_create()\n  - At iscsi_send_cmd_hdr() retrieve the correct headers size and\n    write header digest at iscsi_next_hdr().\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    }
  ],
  "next": "7207fea452cfdd2d4e2f4419e2c31f570edbade3"
}
