diff options
author | Len Brown <len.brown@intel.com> | 2005-08-11 17:09:15 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-08-11 17:09:15 -0400 |
commit | 13779c739168fdb905fae81287d75a9e632825e3 (patch) | |
tree | 33f9d0eef3179a1e0c324cc93cabffa664953c2d | |
parent | 95f193aa4fe50eb2dc987081d066edd6e13027de (diff) | |
parent | 7d69fa6266770eeb6317eddd46b64456e8a515bf (diff) |
Merge ../from-linus
-rw-r--r-- | MAINTAINERS | 2 | ||||
-rw-r--r-- | net/ipv4/tcp_output.c | 14 |
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 | |||
784 | P: LinuxTV.org Project | 784 | P: LinuxTV.org Project |
785 | M: linux-dvb-maintainer@linuxtv.org | 785 | M: linux-dvb-maintainer@linuxtv.org |
786 | L: linux-dvb@linuxtv.org (subscription required) | 786 | L: linux-dvb@linuxtv.org (subscription required) |
787 | W: http://linuxtv.org/developer/dvb.xml | 787 | W: http://linuxtv.org/ |
788 | S: Supported | 788 | S: Supported |
789 | 789 | ||
790 | EATA-DMA SCSI DRIVER | 790 | 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) | |||
1370 | 1370 | ||
1371 | if (skb->len > cur_mss) { | 1371 | if (skb->len > cur_mss) { |
1372 | int old_factor = tcp_skb_pcount(skb); | 1372 | int old_factor = tcp_skb_pcount(skb); |
1373 | int new_factor; | 1373 | int diff; |
1374 | 1374 | ||
1375 | if (tcp_fragment(sk, skb, cur_mss, cur_mss)) | 1375 | if (tcp_fragment(sk, skb, cur_mss, cur_mss)) |
1376 | return -ENOMEM; /* We'll try again later. */ | 1376 | return -ENOMEM; /* We'll try again later. */ |
1377 | 1377 | ||
1378 | /* New SKB created, account for it. */ | 1378 | /* New SKB created, account for it. */ |
1379 | new_factor = tcp_skb_pcount(skb); | 1379 | diff = old_factor - tcp_skb_pcount(skb) - |
1380 | tp->packets_out -= old_factor - new_factor; | 1380 | tcp_skb_pcount(skb->next); |
1381 | tp->packets_out += tcp_skb_pcount(skb->next); | 1381 | tp->packets_out -= diff; |
1382 | |||
1383 | if (diff > 0) { | ||
1384 | tp->fackets_out -= diff; | ||
1385 | if ((int)tp->fackets_out < 0) | ||
1386 | tp->fackets_out = 0; | ||
1387 | } | ||
1382 | } | 1388 | } |
1383 | 1389 | ||
1384 | /* Collapse two adjacent packets if worthwhile and we can. */ | 1390 | /* Collapse two adjacent packets if worthwhile and we can. */ |