|
@@ -1333,8 +1333,7 @@ static void iscsi_tx_resume ( struct iscsi_session *iscsi ) {
|
1333
|
1333
|
static void iscsi_start_tx ( struct iscsi_session *iscsi ) {
|
1334
|
1334
|
|
1335
|
1335
|
assert ( iscsi->tx_state == ISCSI_TX_IDLE );
|
1336
|
|
- assert ( ! process_running ( &iscsi->process ) );
|
1337
|
|
-
|
|
1336
|
+
|
1338
|
1337
|
/* Initialise TX BHS */
|
1339
|
1338
|
memset ( &iscsi->tx_bhs, 0, sizeof ( iscsi->tx_bhs ) );
|
1340
|
1339
|
|
|
@@ -1476,8 +1475,8 @@ static void iscsi_tx_step ( struct iscsi_session *iscsi ) {
|
1476
|
1475
|
next_state = ISCSI_TX_IDLE;
|
1477
|
1476
|
break;
|
1478
|
1477
|
case ISCSI_TX_IDLE:
|
1479
|
|
- /* Stop processing */
|
1480
|
|
- iscsi_tx_done ( iscsi );
|
|
1478
|
+ /* Nothing to do; pause processing */
|
|
1479
|
+ iscsi_tx_pause ( iscsi );
|
1481
|
1480
|
return;
|
1482
|
1481
|
default:
|
1483
|
1482
|
assert ( 0 );
|
|
@@ -1504,6 +1503,12 @@ static void iscsi_tx_step ( struct iscsi_session *iscsi ) {
|
1504
|
1503
|
|
1505
|
1504
|
/* Move to next state */
|
1506
|
1505
|
iscsi->tx_state = next_state;
|
|
1506
|
+
|
|
1507
|
+ /* If we have moved to the idle state, mark
|
|
1508
|
+ * transmission as complete
|
|
1509
|
+ */
|
|
1510
|
+ if ( iscsi->tx_state == ISCSI_TX_IDLE )
|
|
1511
|
+ iscsi_tx_done ( iscsi );
|
1507
|
1512
|
}
|
1508
|
1513
|
}
|
1509
|
1514
|
|