diff options
Diffstat (limited to 'net/l2tp/l2tp_ip6.c')
| -rw-r--r-- | net/l2tp/l2tp_ip6.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c index 41f2f8126eb..c74f5a91ff6 100644 --- a/net/l2tp/l2tp_ip6.c +++ b/net/l2tp/l2tp_ip6.c @@ -241,10 +241,17 @@ static void l2tp_ip6_close(struct sock *sk, long timeout)  static void l2tp_ip6_destroy_sock(struct sock *sk)  { +	struct l2tp_tunnel *tunnel = l2tp_sock_to_tunnel(sk); +  	lock_sock(sk);  	ip6_flush_pending_frames(sk);  	release_sock(sk); +	if (tunnel) { +		l2tp_tunnel_closeall(tunnel); +		sock_put(sk); +	} +  	inet6_destroy_sock(sk);  }  |