spin_unlock(&files->file_lock); 
rcu_read_unlock(); 
static struct dentry *proc_lookupfd(struct inode * dir, struct dentry * dentry, struct nameidata *nd){	struct task_struct *task = proc_task(dir);	unsigned fd = name_to_int(dentry);	struct file * file;	struct files_struct * files;	struct inode *inode;	struct proc_inode *ei;	if (fd == ~0U)		goto out;	if (!pid_alive(task))		goto out;	inode = proc_pid_make_inode(dir->i_sb, task, PROC_TID_FD_DIR+fd);	if (!inode)		goto out;	ei = PROC_I(inode);	files = get_files_struct(task);	if (!files)		goto out_unlock;	inode->i_mode = S_IFLNK;	spin_lock(&files->file_lock);	file = fcheck_files(files, fd);	if (!file)		goto out_unlock2;	if (file->f_mode & 1)		inode->i_mode |= S_IRUSR | S_IXUSR;	if (file->f_mode & 2)		inode->i_mode |= S_IWUSR | S_IXUSR;	spin_unlock(&files->file_lock);	put_files_struct(files);	inode->i_op = &proc_pid_link_inode_operations;	inode->i_size = 64;	ei->op.proc_get_link = proc_fd_link;	dentry->d_op = &tid_fd_dentry_operations;	d_add(dentry, inode);	return NULL;out_unlock2:	spin_unlock(&files->file_lock);	put_files_struct(files);out_unlock:	iput(inode);out:	return ERR_PTR(-ENOENT);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b835996f628eadb55c5fb222ba46fe9395bf73c7/base.c/clean/fs/proc/base.c