fill_in_inode(tmp_inode,(FILE_DIRECTORY_INFO *)pfindEntry,&obj_type); 
fill_in_inode(tmp_inode, (FILE_DIRECTORY_INFO *)pfindEntry,&obj_type, rc); 
static int cifs_filldir(char *pfindEntry, struct file *file,	filldir_t filldir, void *direntry, char *scratch_buf){	int rc = 0;	struct qstr qstring;	struct cifsFileInfo * pCifsF;	unsigned obj_type;	ino_t  inum;	struct cifs_sb_info * cifs_sb;	struct inode *tmp_inode;	struct dentry *tmp_dentry;	/* get filename and len into qstring */	/* get dentry */	/* decide whether to create and populate ionde */	if((direntry == NULL) || (file == NULL))		return -EINVAL;	pCifsF = file->private_data;		if((scratch_buf == NULL) || (pfindEntry == NULL) || (pCifsF == NULL))		return -ENOENT;	if(file->f_dentry == NULL)		return -ENOENT;	cifs_sb = CIFS_SB(file->f_dentry->d_sb);	qstring.name = scratch_buf;	rc = cifs_get_name_from_search_buf(&qstring,pfindEntry,			pCifsF->srch_inf.info_level,			pCifsF->srch_inf.unicode,cifs_sb,			&inum /* returned */);	if(rc)		return rc;	rc = construct_dentry(&qstring,file,&tmp_inode, &tmp_dentry);	if((tmp_inode == NULL) || (tmp_dentry == NULL))		return -ENOMEM;	if(rc) {		/* inode created, we need to hash it with right inode number */		if(inum != 0) {			/* BB fixme - hash the 2 32 quantities bits together if necessary BB */			tmp_inode->i_ino = inum;		}		insert_inode_hash(tmp_inode);	}	if(pCifsF->srch_inf.info_level == SMB_FIND_FILE_UNIX) {		unix_fill_in_inode(tmp_inode,(FILE_UNIX_INFO *)pfindEntry,&obj_type);	} else {		fill_in_inode(tmp_inode,(FILE_DIRECTORY_INFO *)pfindEntry,&obj_type);	}		rc = filldir(direntry,qstring.name,qstring.len,file->f_pos,tmp_inode->i_ino,obj_type);	if(rc) {		cFYI(1,("filldir rc = %d",rc));	}	dput(tmp_dentry);	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/966ca9234754ece58870075972ef103e354de075/readdir.c/buggy/fs/cifs/readdir.c