|
@@ -80,19 +80,16 @@ static void srp_fail ( struct srp_device *srp, int rc ) {
|
80
|
80
|
/* Clear session state */
|
81
|
81
|
srp->state = 0;
|
82
|
82
|
|
83
|
|
- /* Increment retry count */
|
84
|
|
- srp->retry_count++;
|
85
|
|
-
|
86
|
|
- /* If we have reached the retry limit, permanently abort the
|
87
|
|
- * session.
|
88
|
|
- */
|
|
83
|
+ /* If we have reached the retry limit, report the failure */
|
89
|
84
|
if ( srp->retry_count >= SRP_MAX_RETRIES ) {
|
90
|
|
- srp->instant_rc = rc;
|
91
|
85
|
srp_scsi_done ( srp, rc );
|
92
|
86
|
return;
|
93
|
87
|
}
|
94
|
88
|
|
95
|
|
- /* Otherwise, try to reopen the connection */
|
|
89
|
+ /* Otherwise, increment the retry count and try to reopen the
|
|
90
|
+ * connection
|
|
91
|
+ */
|
|
92
|
+ srp->retry_count++;
|
96
|
93
|
srp_login ( srp );
|
97
|
94
|
}
|
98
|
95
|
|
|
@@ -445,10 +442,6 @@ static int srp_command ( struct scsi_device *scsi,
|
445
|
442
|
struct srp_device *srp =
|
446
|
443
|
container_of ( scsi->backend, struct srp_device, refcnt );
|
447
|
444
|
|
448
|
|
- /* Return instant failure, if we have already aborted the session */
|
449
|
|
- if ( srp->instant_rc )
|
450
|
|
- return srp->instant_rc;
|
451
|
|
-
|
452
|
445
|
/* Store SCSI command */
|
453
|
446
|
if ( srp->command ) {
|
454
|
447
|
DBGC ( srp, "SRP %p cannot handle concurrent SCSI commands\n",
|