1. 02 6月, 2007 2 次提交
  2. 21 9月, 2006 1 次提交
  3. 03 9月, 2006 3 次提交
    • M
      [SCSI] scsi_tcp: rm data rx and tx tfms · dd8c0d95
      Mike Christie 提交于
      We currently allocated seperate tfms for data and header digests. There
      is no reason for this since we can never calculate a rx header and
      digest at the same time. Same for sends. So this patch removes the data
      tfms and has the send and recv sides use the rx_tfm or tx_tfm.
      
      I also made the connection creation code preallocate the tfms because I
      thought I hit a bug where I changed the digests settings during a
      relogin but could not allocate the tfm and then we just failed.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      dd8c0d95
    • M
      [SCSI] iscsi_tcp: fix padding, data digests, and IO at weird offsets · 62f38300
      Mike Christie 提交于
      iscsi_tcp calculates padding by using the expected transfer length. This
      has the problem where if we have immediate data = no and initial R2T =
      yes, and the transfer length ended up needing padding then we send:
      
      1. header
      2. padding which should have gone after data
      3. data
      
      Besides this bug, we also assume the target will always ask for nice
      transfer lengths and the first burst length will always be a nice value.
      As far as I can tell form the RFC this is not a requirement. It would be
      silly to do this, but if someone did it we will end doing bad things.
      
      Finally the last bug in that bit of code is in our handling of the
      recalculation of data digests when we do not send a whole iscsi_buf in
      one try. The bug here is that we call crypto_digest_final on a
      iscsi_sendpage error, then when we send the rest of the iscsi_buf, we
      doiscsi_data_digest_init and this causes the previous data digest to be
      lost.
      
      And to make matters worse, some of these bugs are replicated over and
      over and over again for immediate data, solicited data and unsolicited
      data. So the attached patch made over the iscsi git tree (see
      kernel.org/git for details) which I updated today to include the patches
      I said I merged, consolidates the sending of data, padding and digests
      and calculation of data digests and fixes the above bugs.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      62f38300
    • M
      [SCSI] libiscsi, iscsi_tcp, iscsi_iser: check that burst lengths are valid. · ffd0436e
      Mike Christie 提交于
      iSCSI RFC states that the first burst length must be smaller than the
      max burst length. We currently assume targets will be good, but that may
      not be the case, so this patch adds a check.
      
      This patch also moves the unsol data out offset to the lib so the LLDs
      do not have to track it.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      ffd0436e
  4. 29 7月, 2006 1 次提交
    • M
      [SCSI] iscsi bugfixes: reduce memory allocations · c8dc1e52
      Mike Christie 提交于
      We currently try to allocate a max_recv_data_segment_length
      which can be very large (default is 64K), and common uses
      are up to 1MB. It is very very difficult to allocte this
      much contiguous memory and it turns out we never even use it.
      We really only need a couple of pages, so this patch has us
      allocates just what we know what we need today.
      
      Later if vendors start adding vendor specific data and
      we need to handle large buffers we can do this, but for
      the last 4 years we have not seen anyone do this or request
      it.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      c8dc1e52
  5. 20 5月, 2006 1 次提交
  6. 15 4月, 2006 2 次提交
    • M
      [SCSI] iscsi: convert iscsi tcp to libiscsi · 5bb0b55a
      Mike Christie 提交于
      This just converts iscsi_tcp to the lib
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      5bb0b55a
    • M
      [SCSI] iscsi: fix up iscsi eh · 30a6c652
      Mike Christie 提交于
      The current iscsi_tcp eh is not nicely setup for dm-multipath
      and performs some extra task management functions when they
      are not needed.
      
      The attached patch:
      
      - Fixes the TMF issues. If a session is rebuilt
      then we do not send aborts.
      
      - Fixes the problem where if the host reset fired, we would
      return SUCCESS even though we had not really done anything
      yet. This ends up causing problem with scsi_error.c's TUR.
      
      - If someone has turned on the userspace nop daemon code to try
      and detect network problems before the scsi command timeout
      we can now drop and clean up the session before the scsi command
      timesout and fires the eh speeding up the time it takes for a
      command to go from one patch to another. For network problems
      we fail the command with DID_BUS_BUSY so if failfast is set
      scsi_decide_disposition fails the command up to dm for it to
      try on another path.
      
      - And we had to add some basic iscsi session block code. Previously
      if we were trying to repair a session we would retrun a MLQUEUE code
      in the queuecommand. This worked but it was not the most efficient
      or pretty thing to do since it would take a while to relogin
      to the target. For iscsi_tcp/open-iscsi a lot of the iscsi error handler
      is in userspace the block code is pretty bare. We will be
      adding to that for qla4xxx.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      30a6c652
  7. 05 2月, 2006 2 次提交
  8. 15 1月, 2006 2 次提交
  9. 13 1月, 2006 1 次提交
  10. 14 12月, 2005 1 次提交
  11. 06 8月, 2005 1 次提交