if (task == current) 
if (task->tgid == current->tgid) 
int ptrace_attach(struct task_struct *task){	int retval;	task_lock(task);	retval = -EPERM;	if (task->pid <= 1)		goto bad;	if (task == current)		goto bad;	/* the same process cannot be attached many times */	if (task->ptrace & PT_PTRACED)		goto bad;	retval = may_attach(task);	if (retval)		goto bad;	/* Go */	task->ptrace |= PT_PTRACED | ((task->real_parent != current)				      ? PT_ATTACHED : 0);	if (capable(CAP_SYS_PTRACE))		task->ptrace |= PT_PTRACE_CAP;	task_unlock(task);	write_lock_irq(&tasklist_lock);	__ptrace_link(task, current);	write_unlock_irq(&tasklist_lock);	force_sig_specific(SIGSTOP, task);	return 0;bad:	task_unlock(task);	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/28d838cc4dfea980cb6eda0a7409cbf91889ca74/ptrace.c/clean/kernel/ptrace.c