[infiniband] Allow SRP reconnection attempts even after reporting failures
[people/oremanj/gpxe.git] / src / drivers / block / srp.c
index f50f194..1d0799a 100644 (file)
@@ -80,19 +80,16 @@ static void srp_fail ( struct srp_device *srp, int rc ) {
        /* Clear session state */
        srp->state = 0;
 
-       /* Increment retry count */
-       srp->retry_count++;
-
-       /* If we have reached the retry limit, permanently abort the
-        * session.
-        */
+       /* If we have reached the retry limit, report the failure */
        if ( srp->retry_count >= SRP_MAX_RETRIES ) {
-               srp->instant_rc = rc;
                srp_scsi_done ( srp, rc );
                return;
        }
 
-       /* Otherwise, try to reopen the connection */
+       /* Otherwise, increment the retry count and try to reopen the
+        * connection
+        */
+       srp->retry_count++;
        srp_login ( srp );
 }
 
@@ -445,10 +442,6 @@ static int srp_command ( struct scsi_device *scsi,
        struct srp_device *srp =
                container_of ( scsi->backend, struct srp_device, refcnt );
 
-       /* Return instant failure, if we have already aborted the session */
-       if ( srp->instant_rc )
-               return srp->instant_rc;
-
        /* Store SCSI command */
        if ( srp->command ) {
                DBGC ( srp, "SRP %p cannot handle concurrent SCSI commands\n",