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 24f8c81fc48d..e4c0e1fee9b0 100644 --- a/kernel/acct.c +++ b/kernel/acct.c | |||
| @@ -353,17 +353,18 @@ restart: | |||
| 353 | 353 | ||
| 354 | void acct_exit_ns(struct pid_namespace *ns) | 354 | void acct_exit_ns(struct pid_namespace *ns) |
| 355 | { | 355 | { |
| 356 | struct bsd_acct_struct *acct; | 356 | struct bsd_acct_struct *acct = ns->bacct; |
| 357 | 357 | ||
| 358 | spin_lock(&acct_lock); | 358 | if (acct == NULL) |
| 359 | acct = ns->bacct; | 359 | return; |
| 360 | if (acct != NULL) { | ||
| 361 | if (acct->file != NULL) | ||
| 362 | acct_file_reopen(acct, NULL, NULL); | ||
| 363 | 360 | ||
| 364 | kfree(acct); | 361 | del_timer_sync(&acct->timer); |
| 365 | } | 362 | spin_lock(&acct_lock); |
| 363 | if (acct->file != NULL) | ||
| 364 | acct_file_reopen(acct, NULL, NULL); | ||
| 366 | spin_unlock(&acct_lock); | 365 | spin_unlock(&acct_lock); |
| 366 | |||
| 367 | kfree(acct); | ||
| 367 | } | 368 | } |
| 368 | 369 | ||
| 369 | /* | 370 | /* |
