• Guillaume Nault's avatar
    netns: protect netns ID lookups with RCU · 2dce224f
    Guillaume Nault authored
    __peernet2id() can be protected by RCU as it only calls idr_for_each(),
    which is RCU-safe, and never modifies the nsid table.
    
    rtnl_net_dumpid() can also do lockless lookups. It does two nested
    idr_for_each() calls on nsid tables (one direct call and one indirect
    call because of rtnl_net_dumpid_one() calling __peernet2id()). The
    netnsid tables are never updated. Therefore it is safe to not take the
    nsid_lock and run within an RCU-critical section instead.
    Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2dce224f
net_namespace.c 32 KB