reconnection mechanism. This avoids the problems of trying to reuse
the TCP connection structure before the old connection has cleanly exited.
/* Check for login redirection */
if ( response->status_class == ISCSI_STATUS_REDIRECT ) {
DBG ( "iSCSI %p redirecting to new server\n", iscsi );
- iscsi_close ( iscsi, -EINPROGRESS );
- tcp_connect ( &iscsi->tcp );
+ /* Close the TCP connection; our TCP closed() method
+ * will take care of the reconnection once this
+ * connection has been cleanly terminated.
+ */
+ tcp_close ( &iscsi->tcp );
return;
}