diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/ip_output.c | 7 | ||||
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 12 | ||||
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 1 |
3 files changed, 7 insertions, 13 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index c934f5316c3b..c72fc878f06d 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -69,13 +69,10 @@ | |||
69 | #include <net/ip.h> | 69 | #include <net/ip.h> |
70 | #include <net/protocol.h> | 70 | #include <net/protocol.h> |
71 | #include <net/route.h> | 71 | #include <net/route.h> |
72 | #include <net/tcp.h> | ||
73 | #include <net/udp.h> | ||
74 | #include <linux/skbuff.h> | 72 | #include <linux/skbuff.h> |
75 | #include <net/sock.h> | 73 | #include <net/sock.h> |
76 | #include <net/arp.h> | 74 | #include <net/arp.h> |
77 | #include <net/icmp.h> | 75 | #include <net/icmp.h> |
78 | #include <net/raw.h> | ||
79 | #include <net/checksum.h> | 76 | #include <net/checksum.h> |
80 | #include <net/inetpeer.h> | 77 | #include <net/inetpeer.h> |
81 | #include <net/checksum.h> | 78 | #include <net/checksum.h> |
@@ -84,6 +81,7 @@ | |||
84 | #include <linux/netfilter_bridge.h> | 81 | #include <linux/netfilter_bridge.h> |
85 | #include <linux/mroute.h> | 82 | #include <linux/mroute.h> |
86 | #include <linux/netlink.h> | 83 | #include <linux/netlink.h> |
84 | #include <linux/tcp.h> | ||
87 | 85 | ||
88 | /* | 86 | /* |
89 | * Shall we try to damage output packets if routing dev changes? | 87 | * Shall we try to damage output packets if routing dev changes? |
@@ -329,8 +327,7 @@ int ip_queue_xmit(struct sk_buff *skb, int ipfragok) | |||
329 | if (ip_route_output_flow(&rt, &fl, sk, 0)) | 327 | if (ip_route_output_flow(&rt, &fl, sk, 0)) |
330 | goto no_route; | 328 | goto no_route; |
331 | } | 329 | } |
332 | __sk_dst_set(sk, &rt->u.dst); | 330 | sk_setup_caps(sk, &rt->u.dst); |
333 | tcp_v4_setup_caps(sk, &rt->u.dst); | ||
334 | } | 331 | } |
335 | skb->dst = dst_clone(&rt->u.dst); | 332 | skb->dst = dst_clone(&rt->u.dst); |
336 | 333 | ||
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index c7c99d336368..4a5daecbd2ac 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -837,8 +837,7 @@ int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
837 | goto failure; | 837 | goto failure; |
838 | 838 | ||
839 | /* OK, now commit destination to socket. */ | 839 | /* OK, now commit destination to socket. */ |
840 | __sk_dst_set(sk, &rt->u.dst); | 840 | sk_setup_caps(sk, &rt->u.dst); |
841 | tcp_v4_setup_caps(sk, &rt->u.dst); | ||
842 | 841 | ||
843 | if (!tp->write_seq) | 842 | if (!tp->write_seq) |
844 | tp->write_seq = secure_tcp_sequence_number(inet->saddr, | 843 | tp->write_seq = secure_tcp_sequence_number(inet->saddr, |
@@ -1553,8 +1552,7 @@ struct sock *tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb, | |||
1553 | if (!newsk) | 1552 | if (!newsk) |
1554 | goto exit; | 1553 | goto exit; |
1555 | 1554 | ||
1556 | newsk->sk_dst_cache = dst; | 1555 | sk_setup_caps(newsk, dst); |
1557 | tcp_v4_setup_caps(newsk, dst); | ||
1558 | 1556 | ||
1559 | newtp = tcp_sk(newsk); | 1557 | newtp = tcp_sk(newsk); |
1560 | newinet = inet_sk(newsk); | 1558 | newinet = inet_sk(newsk); |
@@ -1855,8 +1853,7 @@ static int tcp_v4_reselect_saddr(struct sock *sk) | |||
1855 | if (err) | 1853 | if (err) |
1856 | return err; | 1854 | return err; |
1857 | 1855 | ||
1858 | __sk_dst_set(sk, &rt->u.dst); | 1856 | sk_setup_caps(sk, &rt->u.dst); |
1859 | tcp_v4_setup_caps(sk, &rt->u.dst); | ||
1860 | 1857 | ||
1861 | new_saddr = rt->rt_src; | 1858 | new_saddr = rt->rt_src; |
1862 | 1859 | ||
@@ -1914,8 +1911,7 @@ int tcp_v4_rebuild_header(struct sock *sk) | |||
1914 | err = ip_route_output_flow(&rt, &fl, sk, 0); | 1911 | err = ip_route_output_flow(&rt, &fl, sk, 0); |
1915 | } | 1912 | } |
1916 | if (!err) { | 1913 | if (!err) { |
1917 | __sk_dst_set(sk, &rt->u.dst); | 1914 | sk_setup_caps(sk, &rt->u.dst); |
1918 | tcp_v4_setup_caps(sk, &rt->u.dst); | ||
1919 | return 0; | 1915 | return 0; |
1920 | } | 1916 | } |
1921 | 1917 | ||
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index f8e288c8d693..7c46a553c4af 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -711,6 +711,7 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req, | |||
711 | bh_lock_sock(newsk); | 711 | bh_lock_sock(newsk); |
712 | 712 | ||
713 | rwlock_init(&newsk->sk_dst_lock); | 713 | rwlock_init(&newsk->sk_dst_lock); |
714 | newsk->sk_dst_cache = NULL; | ||
714 | atomic_set(&newsk->sk_rmem_alloc, 0); | 715 | atomic_set(&newsk->sk_rmem_alloc, 0); |
715 | skb_queue_head_init(&newsk->sk_receive_queue); | 716 | skb_queue_head_init(&newsk->sk_receive_queue); |
716 | atomic_set(&newsk->sk_wmem_alloc, 0); | 717 | atomic_set(&newsk->sk_wmem_alloc, 0); |