diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2007-12-01 17:48:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:55:42 -0500 |
commit | 50c4817e9919132639be0adc387b509e04a9ed0a (patch) | |
tree | ac61ceba656e49f70467ea18c6cc39477606f8bf /net | |
parent | c3a05c6050a339c92e49fae0ba77dbba0d41fd99 (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.c | 3 |
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); |