summaryrefslogtreecommitdiffstats
path: root/kernel/user_namespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/user_namespace.c')
-rw-r--r--kernel/user_namespace.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
index 923414a246e9..bda6e890ad88 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -133,6 +133,9 @@ int create_user_ns(struct cred *new)
133 ns->flags = parent_ns->flags; 133 ns->flags = parent_ns->flags;
134 mutex_unlock(&userns_state_mutex); 134 mutex_unlock(&userns_state_mutex);
135 135
136#ifdef CONFIG_KEYS
137 INIT_LIST_HEAD(&ns->keyring_name_list);
138#endif
136#ifdef CONFIG_PERSISTENT_KEYRINGS 139#ifdef CONFIG_PERSISTENT_KEYRINGS
137 init_rwsem(&ns->persistent_keyring_register_sem); 140 init_rwsem(&ns->persistent_keyring_register_sem);
138#endif 141#endif
@@ -196,9 +199,7 @@ static void free_user_ns(struct work_struct *work)
196 kfree(ns->projid_map.reverse); 199 kfree(ns->projid_map.reverse);
197 } 200 }
198 retire_userns_sysctls(ns); 201 retire_userns_sysctls(ns);
199#ifdef CONFIG_PERSISTENT_KEYRINGS 202 key_free_user_ns(ns);
200 key_put(ns->persistent_keyring_register);
201#endif
202 ns_free_inum(&ns->ns); 203 ns_free_inum(&ns->ns);
203 kmem_cache_free(user_ns_cachep, ns); 204 kmem_cache_free(user_ns_cachep, ns);
204 dec_user_namespaces(ucounts); 205 dec_user_namespaces(ucounts);