From: =?ISO-8859-1?q?Ilpo_J=E4rvinen?= <[EMAIL PROTECTED]>

Signed-off-by: Ilpo Järvinen <[EMAIL PROTECTED]>
---
 net/ipv4/tcp_input.c |   48 ++++++++++++++++++++----------------------------
 1 files changed, 20 insertions(+), 28 deletions(-)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index ed2077c..3f0b6c7 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -2799,41 +2799,33 @@ static int tcp_clean_rtx_queue(struct sock *sk, s32 
*seq_rtt_p,
                        tcp_mtup_probe_success(sk, skb);
                }
 
-               if (sacked) {
-                       if (sacked & TCPCB_RETRANS) {
-                               if (sacked & TCPCB_SACKED_RETRANS)
-                                       tp->retrans_out -= packets_acked;
-                               flag |= FLAG_RETRANS_DATA_ACKED;
-                               seq_rtt = -1;
-                               if ((flag & FLAG_DATA_ACKED) ||
-                                   (packets_acked > 1))
-                                       flag |= FLAG_NONHEAD_RETRANS_ACKED;
-                       } else {
-                               if (seq_rtt < 0) {
-                                       seq_rtt = now - scb->when;
-                                       if (fully_acked)
-                                               last_ackt = skb->tstamp;
-                               }
-                               if (!(sacked & TCPCB_SACKED_ACKED))
-                                       reord = min(cnt, reord);
-                       }
-
-                       if (sacked & TCPCB_SACKED_ACKED)
-                               tp->sacked_out -= packets_acked;
-                       if (sacked & TCPCB_LOST)
-                               tp->lost_out -= packets_acked;
-
-                       if ((sacked & TCPCB_URG) && tp->urg_mode &&
-                           !before(end_seq, tp->snd_up))
-                               tp->urg_mode = 0;
+               if (sacked & TCPCB_RETRANS) {
+                       if (sacked & TCPCB_SACKED_RETRANS)
+                               tp->retrans_out -= packets_acked;
+                       flag |= FLAG_RETRANS_DATA_ACKED;
+                       seq_rtt = -1;
+                       if ((flag & FLAG_DATA_ACKED) ||
+                           (packets_acked > 1))
+                               flag |= FLAG_NONHEAD_RETRANS_ACKED;
                } else {
                        if (seq_rtt < 0) {
                                seq_rtt = now - scb->when;
                                if (fully_acked)
                                        last_ackt = skb->tstamp;
                        }
-                       reord = min(cnt, reord);
+                       if (!(sacked & TCPCB_SACKED_ACKED))
+                               reord = min(cnt, reord);
                }
+
+               if (sacked & TCPCB_SACKED_ACKED)
+                       tp->sacked_out -= packets_acked;
+               if (sacked & TCPCB_LOST)
+                       tp->lost_out -= packets_acked;
+
+               if ((sacked & TCPCB_URG) && tp->urg_mode &&
+                   !before(end_seq, tp->snd_up))
+                       tp->urg_mode = 0;
+
                tp->packets_out -= packets_acked;
                cnt += packets_acked;
 
-- 
1.5.0.6

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to