diff options
author | Tom Parkin <tparkin@katalix.com> | 2013-03-19 06:11:16 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-20 12:10:38 -0400 |
commit | 2b551c6e7d5bca2c78c216b15ef675653d4f459a (patch) | |
tree | 730360502b00460523dfa824c24750fb699b3f80 /net/l2tp | |
parent | 936063175afd895913a5e9db77e1a0ef43ea44ea (diff) | |
download | lwn-2b551c6e7d5bca2c78c216b15ef675653d4f459a.tar.gz lwn-2b551c6e7d5bca2c78c216b15ef675653d4f459a.zip |
l2tp: close sessions before initiating tunnel delete
When a user deletes a tunnel using netlink, all the sessions in the tunnel
should also be deleted. Since running sessions will pin the tunnel socket
with the references they hold, have the l2tp_tunnel_delete close all sessions
in a tunnel before finally closing the tunnel socket.
Signed-off-by: Tom Parkin <tparkin@katalix.com>
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/l2tp')
-rw-r--r-- | net/l2tp/l2tp_core.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c index 287e327342d1..0dd50c079f29 100644 --- a/net/l2tp/l2tp_core.c +++ b/net/l2tp/l2tp_core.c @@ -1737,6 +1737,7 @@ EXPORT_SYMBOL_GPL(l2tp_tunnel_create); */ int l2tp_tunnel_delete(struct l2tp_tunnel *tunnel) { + l2tp_tunnel_closeall(tunnel); return (false == queue_work(l2tp_wq, &tunnel->del_work)); } EXPORT_SYMBOL_GPL(l2tp_tunnel_delete); |