if (full_path) kfree(full_path); 
kfree(full_path); 
ssize_t cifs_listxattr(struct dentry * direntry, char * data, size_t buf_size){	ssize_t rc = -EOPNOTSUPP;#ifdef CONFIG_CIFS_XATTR	int xid;	struct cifs_sb_info *cifs_sb;	struct cifsTconInfo *pTcon;	struct super_block * sb;	char * full_path;	if(direntry == NULL)		return -EIO;	if(direntry->d_inode == NULL)		return -EIO;	sb = direntry->d_inode->i_sb;	if(sb == NULL)		return -EIO;	xid = GetXid();	cifs_sb = CIFS_SB(sb);	pTcon = cifs_sb->tcon;	down(&sb->s_vfs_rename_sem);	full_path = build_path_from_dentry(direntry);	up(&sb->s_vfs_rename_sem);	if(full_path == NULL) {		FreeXid(xid);		return -ENOMEM;	}	/* return dos attributes as pseudo xattr */	/* return alt name if available as pseudo attr */	/* if proc/fs/cifs/streamstoxattr is set then		search server for EAs or streams to 		returns as xattrs */	rc = CIFSSMBQAllEAs(xid,pTcon,full_path,data,buf_size,				cifs_sb->local_nls,				cifs_sb->mnt_cifs_flags & 					CIFS_MOUNT_MAP_SPECIAL_CHR);	if (full_path)		kfree(full_path);	FreeXid(xid);#endif	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f99d49adf527fa6f7a9c42257fa76bca6b8df1e3/xattr.c/clean/fs/cifs/xattr.c