1. 02 10月, 2009 11 次提交
  2. 28 9月, 2009 1 次提交
  3. 27 9月, 2009 1 次提交
  4. 23 9月, 2009 1 次提交
  5. 22 9月, 2009 1 次提交
  6. 21 9月, 2009 3 次提交
  7. 20 9月, 2009 2 次提交
  8. 16 9月, 2009 1 次提交
  9. 12 9月, 2009 16 次提交
  10. 11 9月, 2009 3 次提交
    • T
      scsi,block: update SCSI to handle mixed merge failures · da6c5c72
      Tejun Heo 提交于
      Update scsi_io_completion() such that it only fails requests till the
      next error boundary and retry the leftover.  This enables block layer
      to merge requests with different failfast settings and still behave
      correctly on errors.  Allow merge of requests of different failfast
      settings.
      
      As SCSI is currently the only subsystem which follows failfast status,
      there's no need to worry about other block drivers for now.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Niel Lambrechts <niel.lambrechts@gmail.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      da6c5c72
    • J
      [SCSI] fcoe: flush per-cpu thread work when destroying interface · e7a51997
      Joe Eykholt 提交于
      This fixes one cause of an occational problem when unloading
      libfc where the exchange manager pool doesn't have all items freed.
      
      The existing WARN_ON(mp->total_exches <= 0) isn't hit.
      However, note that total_exches is decremented when the
      exchange is completed, and it can be held with a refcnt
      for a while after that.
      
      I'm not sure what the offending exchange is, but I suspect
      it is an incoming request, because outgoing state machines
      should be all stopped at this point.
      
      Note that although receive is stopped before the exchange
      manager is freed, there could still be active threads
      handling received frames.
      
      This patch flushes the queues by allocating a new skb
      and sending it through, and have the thread handle
      this new skb specially.  This is similar to the way the work
      queues are flushed now by putting work items in them and waiting
      until they make it through the queue.
      
      An skb->destructor function is used to inform us of
      the completion of the flush, and the fr_dev() is left
      NULL to indicate to fcoe_percpu_receive_thread() that
      the skb should be just freed.  There's already a check
      for the lp being NULL which prints a message.
      We skip printing the message if the destructor is for flushing.
      Signed-off-by: NJoe Eykholt <jeykholt@cisco.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      e7a51997
    • J
      [SCSI] libfc: don't swap OX_ID and RX_ID when sending BA_RJT · 1d490ce3
      Joe Eykholt 提交于
      I saw an lport debug message from the exchange manager saying:
      "lport  70500: Received response for out of range oxid:ffff"
      
      A trace showed this was a BA_RJT sent due to an incoming ABTS
      which arrived on an unknown exchange.  So, the sender of the
      BA_RJT was in error, but in this case, both the initiator and
      responder were the same machine.
      
      The OX_ID and RX_ID should not have been reversed in this case.
      Signed-off-by: NJoe Eykholt <jeykholt@cisco.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      1d490ce3