On 07/01/13 14:31, Sebastian Riemer wrote:
On 01.07.2013 13:38, Bart Van Assche wrote:
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -1755,6 +1755,8 @@ static int srp_abort(struct scsi_cmnd *scmnd)
       if (srp_send_tsk_mgmt(target, req->index, scmnd->device->lun,
                     SRP_TSK_ABORT_TASK) == 0)
           ret = SUCCESS;
+    else if (target->transport_offline)
+        ret = FAST_IO_FAIL;
       else
           ret = FAILED;
       srp_free_req(target, req, scmnd, 0);

I'm also missing the concept for srp_reset_device(). There is a very
common case that the SCSI error handling and the transport layer error
handling run in parallel: Congestion.

Can you explain this comment further, and also how this comment relates
to patch 04/15 ?

Sorry, found it. Even if only one srp_reset_device() fails, then
srp_reset_host() is called anyway. So there this check + returning
FAST_IO_FAIL doesn't make so much sense.

Hello Sebastian,

I agree that if one or more srp_abort() calls return FAILED that srp_reset_host() will be called anyway. However, this patch helps if the first call of srp_abort() occurs after a reconnect failure, which is likely with the default reconnnect_delay and SCSI timeout settings. In that case all srp_abort() calls will return FAST_IO_FAIL, scsi_eh_abort_cmds() will terminate the pending commands and hence the host reset will be skipped.

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to