diff options
Diffstat (limited to 'net/core/net_namespace.c')
| -rw-r--r-- | net/core/net_namespace.c | 23 | 
1 files changed, 6 insertions, 17 deletions
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index e478e353ea6..0e0ca6d06fa 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -15,7 +15,6 @@ static LIST_HEAD(pernet_list);  static struct list_head *first_device = &pernet_list;  static DEFINE_MUTEX(net_mutex); -static DEFINE_MUTEX(net_list_mutex);  LIST_HEAD(net_namespace_list);  static struct kmem_cache *net_cachep; @@ -23,16 +22,6 @@ static struct kmem_cache *net_cachep;  struct net init_net;  EXPORT_SYMBOL_GPL(init_net); -void net_lock(void) -{ -	mutex_lock(&net_list_mutex); -} - -void net_unlock(void) -{ -	mutex_unlock(&net_list_mutex); -} -  static struct net *net_alloc(void)  {  	return kmem_cache_alloc(net_cachep, GFP_KERNEL); @@ -62,9 +51,9 @@ static void cleanup_net(struct work_struct *work)  	mutex_lock(&net_mutex);  	/* Don't let anyone else find us. */ -	net_lock(); +	rtnl_lock();  	list_del(&net->list); -	net_unlock(); +	rtnl_unlock();  	/* Run all of the network namespace exit methods */  	list_for_each_entry_reverse(ops, &pernet_list, list) { @@ -151,9 +140,9 @@ struct net *copy_net_ns(unsigned long flags, struct net *old_net)  	if (err)  		goto out_unlock; -	net_lock(); +	rtnl_lock();  	list_add_tail(&new_net->list, &net_namespace_list); -	net_unlock(); +	rtnl_unlock();  out_unlock: @@ -178,9 +167,9 @@ static int __init net_ns_init(void)  	mutex_lock(&net_mutex);  	err = setup_net(&init_net); -	net_lock(); +	rtnl_lock();  	list_add_tail(&init_net.list, &net_namespace_list); -	net_unlock(); +	rtnl_unlock();  	mutex_unlock(&net_mutex);  	if (err)  |