From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Serge E. Hallyn" Subject: [PATCH 6/6] user_namespace: move put_user_ns outside lock Date: Fri, 25 Jul 2008 19:28:57 -0500 Message-ID: <20080726002857.GF29874@us.ibm.com> References: <20080726002700.GA29686@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <20080726002700.GA29686-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Linux Containers List-Id: containers.vger.kernel.org Oops, this one was supposed to get folded into the first patch, obviously. Sorry. -serge >From daa76939c72adf146ded8a39e0211886e2bc943a Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Fri, 25 Jul 2008 14:24:32 -0500 Subject: [PATCH 6/6] user_namespace: move put_user_ns outside lock Since put_user_ns calls free_user on the creator, we shouldn't call it from inside the lock in free_user. Signed-off-by: Serge Hallyn --- kernel/user.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/kernel/user.c b/kernel/user.c index 034dae5..d3dd353 100644 --- a/kernel/user.c +++ b/kernel/user.c @@ -323,11 +323,11 @@ done: */ static inline void free_user(struct user_struct *up, unsigned long flags) { - put_user_ns(up->user_ns); /* restore back the count */ atomic_inc(&up->__count); spin_unlock_irqrestore(&uidhash_lock, flags); + put_user_ns(up->user_ns); INIT_WORK(&up->work, remove_user_sysfs_dir); schedule_work(&up->work); } -- 1.5.4.3