aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2007-12-01 17:48:00 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:55:42 -0500
commit50c4817e9919132639be0adc387b509e04a9ed0a (patch)
treeac61ceba656e49f70467ea18c6cc39477606f8bf /net
parentc3a05c6050a339c92e49fae0ba77dbba0d41fd99 (diff)
[TCP]: MTUprobe: prepare skb fields earlier
They better be valid when call to write_queue functions is made once things that follow are going in. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/tcp_output.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 98835afb8d8a..c2aa4688dae6 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1342,7 +1342,6 @@ static int tcp_mtu_probe(struct sock *sk)
1342 sk_charge_skb(sk, nskb); 1342 sk_charge_skb(sk, nskb);
1343 1343
1344 skb = tcp_send_head(sk); 1344 skb = tcp_send_head(sk);
1345 tcp_insert_write_queue_before(nskb, skb, sk);
1346 1345
1347 TCP_SKB_CB(nskb)->seq = TCP_SKB_CB(skb)->seq; 1346 TCP_SKB_CB(nskb)->seq = TCP_SKB_CB(skb)->seq;
1348 TCP_SKB_CB(nskb)->end_seq = TCP_SKB_CB(skb)->seq + probe_size; 1347 TCP_SKB_CB(nskb)->end_seq = TCP_SKB_CB(skb)->seq + probe_size;
@@ -1351,6 +1350,8 @@ static int tcp_mtu_probe(struct sock *sk)
1351 nskb->csum = 0; 1350 nskb->csum = 0;
1352 nskb->ip_summed = skb->ip_summed; 1351 nskb->ip_summed = skb->ip_summed;
1353 1352
1353 tcp_insert_write_queue_before(nskb, skb, sk);
1354
1354 len = 0; 1355 len = 0;
1355 while (len < probe_size) { 1356 while (len < probe_size) {
1356 next = tcp_write_queue_next(sk, skb); 1357 next = tcp_write_queue_next(sk, skb);