diff mbox series

[v3,2/2] net: Remove spinlock from get_net_ns_by_id()

Message ID 151609511167.12003.7323991178420491612.stgit@localhost.localdomain
State Accepted, archived
Delegated to: David Miller
Headers show
Series [v3,1/2] net: Fix possible race in peernet2id_alloc() | expand

Commit Message

Kirill Tkhai Jan. 16, 2018, 9:31 a.m. UTC
idr_find() is safe under rcu_read_lock() and
maybe_get_net() guarantees that net is alive.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
---
 net/core/net_namespace.c |    2 --
 1 file changed, 2 deletions(-)

Comments

David Miller Jan. 17, 2018, 8:43 p.m. UTC | #1
From: Kirill Tkhai <ktkhai@virtuozzo.com>
Date: Tue, 16 Jan 2018 12:31:54 +0300

> idr_find() is safe under rcu_read_lock() and
> maybe_get_net() guarantees that net is alive.
> 
> Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>

Also applied to net-next, thanks.
diff mbox series

Patch

diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 3c77d84ad60d..1ccb953b3b09 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -273,11 +273,9 @@  struct net *get_net_ns_by_id(struct net *net, int id)
 		return NULL;
 
 	rcu_read_lock();
-	spin_lock_bh(&net->nsid_lock);
 	peer = idr_find(&net->netns_ids, id);
 	if (peer)
 		peer = maybe_get_net(peer);
-	spin_unlock_bh(&net->nsid_lock);
 	rcu_read_unlock();
 
 	return peer;