diff options
author | Eric Dumazet <edumazet@google.com> | 2015-03-16 00:12:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-16 15:55:29 -0400 |
commit | f7e4eb03f9d9e2522bdd5107f37f9cf1af0bf0fa (patch) | |
tree | b861e213b81c976dbe2fbae042eeed04aab55007 | |
parent | 1d0ab253872cdd3d8e7913f59c266c7fd01771d0 (diff) |
inet: ip early demux should avoid request sockets
When a request socket is created, we do not cache ip route
dst entry, like for timewait sockets.
Let's use sk_fullsock() helper.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 2 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 1f514a0c5e60..80067d5858b4 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1518,7 +1518,7 @@ void tcp_v4_early_demux(struct sk_buff *skb) | |||
1518 | if (sk) { | 1518 | if (sk) { |
1519 | skb->sk = sk; | 1519 | skb->sk = sk; |
1520 | skb->destructor = sock_edemux; | 1520 | skb->destructor = sock_edemux; |
1521 | if (sk->sk_state != TCP_TIME_WAIT) { | 1521 | if (sk_fullsock(sk)) { |
1522 | struct dst_entry *dst = sk->sk_rx_dst; | 1522 | struct dst_entry *dst = sk->sk_rx_dst; |
1523 | 1523 | ||
1524 | if (dst) | 1524 | if (dst) |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index d89f028dc8c4..e4761b22307b 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1583,7 +1583,7 @@ static void tcp_v6_early_demux(struct sk_buff *skb) | |||
1583 | if (sk) { | 1583 | if (sk) { |
1584 | skb->sk = sk; | 1584 | skb->sk = sk; |
1585 | skb->destructor = sock_edemux; | 1585 | skb->destructor = sock_edemux; |
1586 | if (sk->sk_state != TCP_TIME_WAIT) { | 1586 | if (sk_fullsock(sk)) { |
1587 | struct dst_entry *dst = sk->sk_rx_dst; | 1587 | struct dst_entry *dst = sk->sk_rx_dst; |
1588 | 1588 | ||
1589 | if (dst) | 1589 | if (dst) |