goto out; 
goto out_put_task_struct; 
asmlinkage long sys_ptrace(long request, long pid, long addr, long data){	struct task_struct *child;	long ret;	/*	 * This lock_kernel fixes a subtle race with suid exec	 */	lock_kernel();	ret = ptrace_get_task_struct(request, pid, &child);	if (!child)		goto out;	if (request == PTRACE_ATTACH) {		ret = ptrace_attach(child);		goto out;	}	ret = ptrace_check_attach(child, request == PTRACE_KILL);	if (ret < 0)		goto out_put_task_struct;	ret = arch_ptrace(child, request, addr, data);	if (ret < 0)		goto out_put_task_struct; out_put_task_struct:	put_task_struct(child); out:	unlock_kernel();	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/005f18dfd0ed86c39716277b61dfb4bd2af91059/ptrace.c/clean/kernel/ptrace.c