diff options
Diffstat (limited to 'net/sctp/outqueue.c')
-rw-r--r-- | net/sctp/outqueue.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index 4db012aa25f7..7029f8b99063 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c | |||
@@ -377,7 +377,8 @@ static int sctp_prsctp_prune_sent(struct sctp_association *asoc, | |||
377 | asoc->abandoned_sent[SCTP_PR_INDEX(PRIO)]++; | 377 | asoc->abandoned_sent[SCTP_PR_INDEX(PRIO)]++; |
378 | streamout->ext->abandoned_sent[SCTP_PR_INDEX(PRIO)]++; | 378 | streamout->ext->abandoned_sent[SCTP_PR_INDEX(PRIO)]++; |
379 | 379 | ||
380 | if (!chk->tsn_gap_acked) { | 380 | if (queue != &asoc->outqueue.retransmit && |
381 | !chk->tsn_gap_acked) { | ||
381 | if (chk->transport) | 382 | if (chk->transport) |
382 | chk->transport->flight_size -= | 383 | chk->transport->flight_size -= |
383 | sctp_data_size(chk); | 384 | sctp_data_size(chk); |
@@ -1434,7 +1435,8 @@ static void sctp_check_transmitted(struct sctp_outq *q, | |||
1434 | /* If this chunk has not been acked, stop | 1435 | /* If this chunk has not been acked, stop |
1435 | * considering it as 'outstanding'. | 1436 | * considering it as 'outstanding'. |
1436 | */ | 1437 | */ |
1437 | if (!tchunk->tsn_gap_acked) { | 1438 | if (transmitted_queue != &q->retransmit && |
1439 | !tchunk->tsn_gap_acked) { | ||
1438 | if (tchunk->transport) | 1440 | if (tchunk->transport) |
1439 | tchunk->transport->flight_size -= | 1441 | tchunk->transport->flight_size -= |
1440 | sctp_data_size(tchunk); | 1442 | sctp_data_size(tchunk); |