linux/net/core
Denis V. Lunev 775516bfa2 [NETNS]: Namespace stop vs 'ip r l' race.
During network namespace stop process kernel side netlink sockets
belonging to a namespace should be closed. They should not prevent
namespace to stop, so they do not increment namespace usage
counter. Though this counter will be put during last sock_put.

The raplacement of the correct netns for init_ns solves the problem
only partial as socket to be stoped until proper stop is a valid
netlink kernel socket and can be looked up by the user processes. This
is not a problem until it resides in initial namespace (no processes
inside this net), but this is not true for init_net.

So, hold the referrence for a socket, remove it from lookup tables and
only after that change namespace and perform a last put.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Tested-by: Alexey Dobriyan <adobriyan@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-28 15:08:08 -08:00
..
datagram.c [NET] CORE: Introducing new memory accounting interface. 2008-01-28 15:00:18 -08:00
dev_mcast.c [NET]: Add some acquires/releases sparse annotations. 2008-01-28 15:00:31 -08:00
dev.c [NET]: Add some acquires/releases sparse annotations. 2008-01-28 15:00:31 -08:00
dst.c [NETNS][DST] dst: pass the dst_ops as parameter to the gc functions 2008-01-28 15:02:46 -08:00
ethtool.c [ETHTOOL] Provide default behaviors for a few ethtool sub-ioctls 2007-10-10 16:51:17 -07:00
fib_rules.c [IPV4]: fib_rules_unregister is essentially void. 2008-01-28 15:02:09 -08:00
filter.c [NET]: Fix bug in sk_filter race cures. 2007-10-18 21:48:39 -07:00
flow.c [NET]: Convert init_timer into setup_timer 2008-01-28 14:53:35 -08:00
gen_estimator.c [NET]: Avoid divides in net/core/gen_estimator.c 2008-01-28 15:00:35 -08:00
gen_stats.c [NET]: Add some acquires/releases sparse annotations. 2008-01-28 15:00:31 -08:00
iovec.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
kmap_skb.h [PATCH] severing skbuff.h -> highmem.h 2006-12-04 02:00:29 -05:00
link_watch.c [NET] link_watch: Always schedule urgent events 2007-05-10 23:45:28 -07:00
Makefile [NET]: Fix running without sysfs 2007-10-10 16:52:46 -07:00
neighbour.c [ARP]: neigh_parms_put(destroy) are essentially local to core/neighbour.c. 2008-01-28 15:02:11 -08:00
net_namespace.c [NET]: Make netns cleanup to run in a separate queue 2008-01-28 14:54:35 -08:00
net-sysfs.c [ETH]: Combine format_addr() with print_mac(). 2008-01-28 15:00:05 -08:00
net-sysfs.h [NET]: Remove in-code externs for some functions from net/core/dev.c 2007-10-23 21:27:56 -07:00
netevent.c [NET]: net/core/netevent.c should #include <net/netevent.h> 2007-07-05 17:40:27 -07:00
netpoll.c [IPV4] net/core: Use ipv4_is_<type> 2008-01-28 14:58:15 -08:00
pktgen.c [PKTGEN]: uninline getCurUs 2008-01-28 15:01:51 -08:00
request_sock.c [NET] net/core/request_sock.c: Remove unused exports. 2008-01-28 14:54:33 -08:00
rtnetlink.c [NETNS]: Namespace stop vs 'ip r l' race. 2008-01-28 15:08:08 -08:00
scm.c [NET]: Fix function put_cmsg() which may cause usr application memory overflow 2007-12-20 14:36:44 -08:00
skbuff.c [TCP]: Splice receive support. 2008-01-28 14:53:31 -08:00
sock.c [NET]: prot_inuse cleanups and optimizations 2008-01-28 15:00:36 -08:00
stream.c [NET] CORE: Introducing new memory accounting interface. 2008-01-28 15:00:18 -08:00
sysctl_net_core.c [NET] sysctl: make sysctl_somaxconn per-namespace 2008-01-28 14:56:57 -08:00
user_dma.c [NET]: Revert sk_buff walker cleanups. 2007-04-27 15:21:23 -07:00
utils.c [NET] core/utils.c: digit2bin is dead static inline 2008-01-28 15:01:58 -08:00