diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 0ba6e911c979..167a0f557531 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1920,6 +1920,14 @@ int tcp_v4_destroy_sock(struct sock *sk) | |||
1920 | sk->sk_sndmsg_page = NULL; | 1920 | sk->sk_sndmsg_page = NULL; |
1921 | } | 1921 | } |
1922 | 1922 | ||
1923 | if (tp->defer_tcp_accept.request) { | ||
1924 | reqsk_free(tp->defer_tcp_accept.request); | ||
1925 | sock_put(tp->defer_tcp_accept.listen_sk); | ||
1926 | sock_put(sk); | ||
1927 | tp->defer_tcp_accept.listen_sk = NULL; | ||
1928 | tp->defer_tcp_accept.request = NULL; | ||
1929 | } | ||
1930 | |||
1923 | atomic_dec(&tcp_sockets_allocated); | 1931 | atomic_dec(&tcp_sockets_allocated); |
1924 | 1932 | ||
1925 | return 0; | 1933 | return 0; |