OSDN Git Service

net: Remove spinlock from get_net_ns_by_id()
authorKirill Tkhai <ktkhai@virtuozzo.com>
Tue, 16 Jan 2018 09:31:54 +0000 (12:31 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Jan 2018 20:42:35 +0000 (15:42 -0500)
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/net_namespace.c

index 3c77d84..1ccb953 100644 (file)
@@ -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;