diff options
Diffstat (limited to 'kernel/acct.c')
| -rw-r--r-- | kernel/acct.c | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/kernel/acct.c b/kernel/acct.c index b4c667d22e79..33738ef972f3 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -472,7 +472,6 @@ static void do_acct_process(struct bsd_acct_struct *acct)  	acct_t ac;  	unsigned long flim;  	const struct cred *orig_cred; -	struct pid_namespace *ns = acct->ns;  	struct file *file = acct->file;  	/* @@ -500,10 +499,15 @@ static void do_acct_process(struct bsd_acct_struct *acct)  	ac.ac_gid16 = ac.ac_gid;  #endif  #if ACCT_VERSION == 3 -	ac.ac_pid = task_tgid_nr_ns(current, ns); -	rcu_read_lock(); -	ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent), ns); -	rcu_read_unlock(); +	{ +		struct pid_namespace *ns = acct->ns; + +		ac.ac_pid = task_tgid_nr_ns(current, ns); +		rcu_read_lock(); +		ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent), +					     ns); +		rcu_read_unlock(); +	}  #endif  	/*  	 * Get freeze protection. If the fs is frozen, just skip the write |