diff options
Diffstat (limited to 'kernel/futex.c')
| -rw-r--r-- | kernel/futex.c | 17 | 
1 files changed, 4 insertions, 13 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index e7a35f1039e..6a3a5fa1526 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -429,20 +429,11 @@ static void free_pi_state(struct futex_pi_state *pi_state)  static struct task_struct * futex_find_get_task(pid_t pid)  {  	struct task_struct *p; -	const struct cred *cred = current_cred(), *pcred;  	rcu_read_lock();  	p = find_task_by_vpid(pid); -	if (!p) { -		p = ERR_PTR(-ESRCH); -	} else { -		pcred = __task_cred(p); -		if (cred->euid != pcred->euid && -		    cred->euid != pcred->uid) -			p = ERR_PTR(-ESRCH); -		else -			get_task_struct(p); -	} +	if (p) +		get_task_struct(p);  	rcu_read_unlock(); @@ -564,8 +555,8 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,  	if (!pid)  		return -ESRCH;  	p = futex_find_get_task(pid); -	if (IS_ERR(p)) -		return PTR_ERR(p); +	if (!p) +		return -ESRCH;  	/*  	 * We need to look at the task state flags to figure out,  |