aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/outqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/outqueue.c')
-rw-r--r--net/sctp/outqueue.c6
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);