nsproxy: use put_nsproxy() in switch_task_namespaces()
authorHui Su <sh_def@163.com>
Sun, 15 Nov 2020 18:00:54 +0000 (02:00 +0800)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 19 Nov 2020 09:57:02 +0000 (10:57 +0100)
We already have a dedicated helper that handles reference count
checking so stop open-coding the reference count check in
switch_task_namespaces() and use the dedicated put_nsproxy() helper
instead.
Take the change to fix a whitespace issue too.

Signed-off-by: Hui Su <sh_def@163.com>
[christian.brauner@ubuntu.com: expand commit message]
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Link: https://lore.kernel.org/r/20201115180054.GA371317@rlk
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
kernel/nsproxy.c

index 12dd41b..3ebfd09 100644 (file)
@@ -173,7 +173,7 @@ int copy_namespaces(unsigned long flags, struct task_struct *tsk)
         * it along with CLONE_NEWIPC.
         */
        if ((flags & (CLONE_NEWIPC | CLONE_SYSVSEM)) ==
-               (CLONE_NEWIPC | CLONE_SYSVSEM)) 
+               (CLONE_NEWIPC | CLONE_SYSVSEM))
                return -EINVAL;
 
        new_ns = create_new_namespaces(flags, tsk, user_ns, tsk->fs);
@@ -250,8 +250,8 @@ void switch_task_namespaces(struct task_struct *p, struct nsproxy *new)
        p->nsproxy = new;
        task_unlock(p);
 
-       if (ns && atomic_dec_and_test(&ns->count))
-               free_nsproxy(ns);
+       if (ns)
+               put_nsproxy(ns);
 }
 
 void exit_task_namespaces(struct task_struct *p)