|
@@ -735,8 +735,11 @@ static void iscsi_rx_login_response ( struct iscsi_session *iscsi, void *data,
|
735
|
735
|
/* Check for login redirection */
|
736
|
736
|
if ( response->status_class == ISCSI_STATUS_REDIRECT ) {
|
737
|
737
|
DBG ( "iSCSI %p redirecting to new server\n", iscsi );
|
738
|
|
- iscsi_close ( iscsi, -EINPROGRESS );
|
739
|
|
- tcp_connect ( &iscsi->tcp );
|
|
738
|
+ /* Close the TCP connection; our TCP closed() method
|
|
739
|
+ * will take care of the reconnection once this
|
|
740
|
+ * connection has been cleanly terminated.
|
|
741
|
+ */
|
|
742
|
+ tcp_close ( &iscsi->tcp );
|
740
|
743
|
return;
|
741
|
744
|
}
|
742
|
745
|
|