diff options
Diffstat (limited to 'kernel/acct.c')
| -rw-r--r-- | kernel/acct.c | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index 24f8c81fc48..e4c0e1fee9b 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -353,17 +353,18 @@ restart:  void acct_exit_ns(struct pid_namespace *ns)  { -	struct bsd_acct_struct *acct; +	struct bsd_acct_struct *acct = ns->bacct; -	spin_lock(&acct_lock); -	acct = ns->bacct; -	if (acct != NULL) { -		if (acct->file != NULL) -			acct_file_reopen(acct, NULL, NULL); +	if (acct == NULL) +		return; -		kfree(acct); -	} +	del_timer_sync(&acct->timer); +	spin_lock(&acct_lock); +	if (acct->file != NULL) +		acct_file_reopen(acct, NULL, NULL);  	spin_unlock(&acct_lock); + +	kfree(acct);  }  /*  |