summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2005-08-11 17:09:15 -0400
committerLen Brown <len.brown@intel.com>2005-08-11 17:09:15 -0400
commit13779c739168fdb905fae81287d75a9e632825e3 (patch)
tree33f9d0eef3179a1e0c324cc93cabffa664953c2d
parent95f193aa4fe50eb2dc987081d066edd6e13027de (diff)
parent7d69fa6266770eeb6317eddd46b64456e8a515bf (diff)
downloadlinux-stable-13779c739168fdb905fae81287d75a9e632825e3.tar.gz
linux-stable-13779c739168fdb905fae81287d75a9e632825e3.tar.bz2
linux-stable-13779c739168fdb905fae81287d75a9e632825e3.zip
Merge ../from-linus
-rw-r--r--MAINTAINERS2
-rw-r--r--net/ipv4/tcp_output.c14
2 files changed, 11 insertions, 5 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 5fd00c075053..3b38d6ab06cf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -784,7 +784,7 @@ DVB SUBSYSTEM AND DRIVERS
P: LinuxTV.org Project
M: linux-dvb-maintainer@linuxtv.org
L: linux-dvb@linuxtv.org (subscription required)
-W: http://linuxtv.org/developer/dvb.xml
+W: http://linuxtv.org/
S: Supported
EATA-DMA SCSI DRIVER
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 7d076f0db100..3ed6fc15815b 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1370,15 +1370,21 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb)
if (skb->len > cur_mss) {
int old_factor = tcp_skb_pcount(skb);
- int new_factor;
+ int diff;
if (tcp_fragment(sk, skb, cur_mss, cur_mss))
return -ENOMEM; /* We'll try again later. */
/* New SKB created, account for it. */
- new_factor = tcp_skb_pcount(skb);
- tp->packets_out -= old_factor - new_factor;
- tp->packets_out += tcp_skb_pcount(skb->next);
+ diff = old_factor - tcp_skb_pcount(skb) -
+ tcp_skb_pcount(skb->next);
+ tp->packets_out -= diff;
+
+ if (diff > 0) {
+ tp->fackets_out -= diff;
+ if ((int)tp->fackets_out < 0)
+ tp->fackets_out = 0;
+ }
}
/* Collapse two adjacent packets if worthwhile and we can. */