/* Handle allocation of temporary space for name translation and handling split directory entries.. The real work is done by "do_isofs_readdir()".  */
static int isofs_readdir(struct file *filp, void *dirent, filldir_t filldir)
/* Handle allocation of temporary space for name translation and handling split directory entries.. The real work is done by "do_isofs_readdir()".  */
static int isofs_readdir(struct file *filp, void *dirent, filldir_t filldir)
{
	int result;
	char *tmpname;
	struct iso_directory_record *tmpde;
	struct inode *inode = filp->f_path.dentry->d_inode;
	tmpname = (char *)__get_free_page(GFP_KERNEL);
	if (tmpname == NULL)
		return -ENOMEM;
	lock_kernel();
	tmpde = (struct iso_directory_record *) (tmpname+1024);
	result = do_isofs_readdir(inode, filp, dirent, filldir, tmpname, tmpde);
	free_page((unsigned long) tmpname);
	unlock_kernel();
	return result;
}