user_namespaces_init was converted from module_init
to subsys_initcall which is called at later point.
init_user_ns is used before that call in sget(...).
So move the initialization of ucount_max into the
declaration of init_user_ns.

https://jira.vzint.dev/browse/PSBM-151029
Signed-off-by: Alexander Atanasov <alexander.atana...@virtuozzo.com>
---
 kernel/user.c           | 4 ++++
 kernel/user_namespace.c | 4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/user.c b/kernel/user.c
index de59631d163b..fdcf675b809d 100644
--- a/kernel/user.c
+++ b/kernel/user.c
@@ -59,6 +59,10 @@ struct user_namespace init_user_ns = {
        .persistent_keyring_register_sem =
        __RWSEM_INITIALIZER(init_user_ns.persistent_keyring_register_sem),
 #endif
+        /* To make user namespaces something to opt in to for existing
+         * RHEL users default ucount_max to 0.
+         */
+       .ucount_max[UCOUNT_USER_NAMESPACES] = 0,
 };
 EXPORT_SYMBOL_GPL(init_user_ns);
 
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
index 1759671e62ad..a76d0a796aa9 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -1119,10 +1119,6 @@ const struct proc_ns_operations userns_operations = {
 static __init int user_namespaces_init(void)
 {
        user_ns_cachep = KMEM_CACHE(user_namespace, SLAB_PANIC | SLAB_ACCOUNT);
-       /* To make user namespaces something to opt in to for existing
-        * RHEL users default ucount_max to 0.
-        */
-       init_user_ns.ucount_max[UCOUNT_USER_NAMESPACES] = 0;
        return 0;
 }
 subsys_initcall(user_namespaces_init);
-- 
2.39.3

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to