[NET]: Make netns cleanup to run in a separate queue
authorBenjamin Thery <benjamin.thery@bull.net>
Tue, 20 Nov 2007 07:18:16 +0000 (23:18 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 22:54:35 +0000 (14:54 -0800)
commit3ef1355dcb8551730cc71e9ef4363f5c66ccad17
treecd17815dd88eb923b480547efe862ed2ce5f0290
parent85b606800be20ceeca36bd8594c1eb228d2fb2f4
[NET]: Make netns cleanup to run in a separate queue

This patch adds a separate workqueue for cleaning up a network
namespace. If we use the keventd workqueue to execute cleanup_net(),
there is a problem to unregister devices in IPv6. Indeed the code
that cleans up also schedule work in keventd: as long as cleanup_net()
hasn't return, dst_gc_task() cannot run and as long as dst_gc_task() has
not run, there are still some references pending on the net devices and
cleanup_net() can not unregister and exit the keventd workqueue.

Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Acked-by: Denis V. Lunev <den@openvz.org>
Acked-By: Kirill Korotaev <dev@sw.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/net_namespace.c