On 7/20/20 4:09 PM, Jianlin Lv wrote:
For non-initial network NS, the net cookie is generated when
bpf_get_netns_cookie_sock is called for the first time, but it is more
reasonable to complete the cookie generation work when creating a new
network NS, just like init_net.
net_gen_cookie() be moved into setup_net() that it can serve the initial
and non-initial network namespace.

Signed-off-by: Jianlin Lv <jianlin...@arm.com>

What use-case are you trying to solve? Why should it be different than, say,
socket cookie generation? I'm currently not seeing much of a point in moving
this. When it's not used in the system, it would actually create more work.

---
  net/core/net_namespace.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index dcd61aca343e..5937bd0df56d 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -336,6 +336,7 @@ static __net_init int setup_net(struct net *net, struct 
user_namespace *user_ns)
        idr_init(&net->netns_ids);
        spin_lock_init(&net->nsid_lock);
        mutex_init(&net->ipv4.ra_mutex);
+       net_gen_cookie(net);
list_for_each_entry(ops, &pernet_list, list) {
                error = ops_init(ops, net);
@@ -1101,7 +1102,6 @@ static int __init net_ns_init(void)
                panic("Could not allocate generic netns");
rcu_assign_pointer(init_net.gen, ng);
-       net_gen_cookie(&init_net);
down_write(&pernet_ops_rwsem);
        if (setup_net(&init_net, &init_user_ns))


Reply via email to