Subject: make netns cleanup to run in a separate queue
From: Benjamin Thery
Signed-off-by: Daniel Lezcano <[EMAIL PROTECTED]>
Signed-off-by: Benjamin Thery <[EMAIL PROTECTED]>
---
net/core/net_namespace.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
Index: linux-2.6-netns/net/core/net_namespace.c
===================================================================
--- linux-2.6-netns.orig/net/core/net_namespace.c
+++ linux-2.6-netns/net/core/net_namespace.c
@@ -14,6 +14,7 @@
static LIST_HEAD(pernet_list);
static struct list_head *first_device = &pernet_list;
static DEFINE_MUTEX(net_mutex);
+static struct workqueue_struct *netns_wq;
LIST_HEAD(net_namespace_list);
@@ -149,7 +150,7 @@ void __put_net(struct net *net)
{
/* Cleanup the network namespace in process context */
INIT_WORK(&net->work, cleanup_net);
- schedule_work(&net->work);
+ queue_work(netns_wq, &net->work);
}
EXPORT_SYMBOL_GPL(__put_net);
@@ -172,6 +173,12 @@ static int __init net_ns_init(void)
SMP_CACHE_BYTES,
SLAB_PANIC, NULL);
#endif
+
+ /* Create workqueue for cleanup */
+ netns_wq = create_singlethread_workqueue("netns");
+ if (!netns_wq)
+ panic("Could not create netns cleaner");
+
mutex_lock(&net_mutex);
err = setup_net(&init_net);
_______________________________________________
Containers mailing list
[EMAIL PROTECTED]
https://lists.linux-foundation.org/mailman/listinfo/containers
_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel