net: Call preinit_net() without pernet_ops_rwsem.
When initialising the root netns, we call preinit_net() under pernet_ops_rwsem. However, the operations in preinit_net() do not require pernet_ops_rwsem. Also, we don't hold it for preinit_net() when initialising non-root netns. To be consistent, let's call preinit_net() without pernet_ops_rwsem in net_ns_init(). Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
2b5afc1d5d
commit
9302994918
@@ -1199,8 +1199,9 @@ void __init net_ns_init(void)
|
||||
#ifdef CONFIG_KEYS
|
||||
init_net.key_domain = &init_net_key_domain;
|
||||
#endif
|
||||
down_write(&pernet_ops_rwsem);
|
||||
preinit_net(&init_net);
|
||||
|
||||
down_write(&pernet_ops_rwsem);
|
||||
if (setup_net(&init_net, &init_user_ns))
|
||||
panic("Could not setup the initial network namespace");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user