inode->i_nlink = 3; 
struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd){	struct task_struct *task;	struct inode *inode;	struct proc_inode *ei;	unsigned tgid;	int died;	if (dentry->d_name.len == 4 && !memcmp(dentry->d_name.name,"self",4)) {		inode = new_inode(dir->i_sb);		if (!inode)			return ERR_PTR(-ENOMEM);		ei = PROC_I(inode);		inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;		inode->i_ino = fake_ino(0, PROC_TGID_INO);		ei->pde = NULL;		inode->i_mode = S_IFLNK|S_IRWXUGO;		inode->i_uid = inode->i_gid = 0;		inode->i_size = 64;		inode->i_op = &proc_self_inode_operations;		d_add(dentry, inode);		return NULL;	}	tgid = name_to_int(dentry);	if (tgid == ~0U)		goto out;	read_lock(&tasklist_lock);	task = find_task_by_pid(tgid);	if (task)		get_task_struct(task);	read_unlock(&tasklist_lock);	if (!task)		goto out;	inode = proc_pid_make_inode(dir->i_sb, task, PROC_TGID_INO);	if (!inode) {		put_task_struct(task);		goto out;	}	inode->i_mode = S_IFDIR|S_IRUGO|S_IXUGO;	inode->i_op = &proc_tgid_base_inode_operations;	inode->i_fop = &proc_tgid_base_operations;	inode->i_nlink = 3;	inode->i_flags|=S_IMMUTABLE;	dentry->d_op = &pid_base_dentry_operations;	died = 0;	d_add(dentry, inode);	spin_lock(&task->proc_lock);	task->proc_dentry = dentry;	if (!pid_alive(task)) {		dentry = proc_pid_unhash(task);		died = 1;	}	spin_unlock(&task->proc_lock);	put_task_struct(task);	if (died) {		proc_pid_flush(dentry);		goto out;	}	return NULL;out:	return ERR_PTR(-ENOENT);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/bcf88e1163623e8e8ef2ba7feface9c826a890c9/base.c/clean/fs/proc/base.c