summaryrefslogtreecommitdiffstats
path: root/src/drivers/block/srp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/block/srp.c')
-rw-r--r--src/drivers/block/srp.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/drivers/block/srp.c b/src/drivers/block/srp.c
index f50f194b..1d0799ab 100644
--- a/src/drivers/block/srp.c
+++ b/src/drivers/block/srp.c
@@ -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",