/* Carnegie Mellon encourages users to contribute improvements to the Coda project. Contact Peter Braam ( */
static int coda_symlink_filler(struct file *file, struct page *page)
/* Carnegie Mellon encourages users to contribute improvements to the Coda project. Contact Peter Braam ( */
static int coda_symlink_filler(struct file *file, struct page *page)
{
	struct inode *inode = page->mapping->host;
	int error;
	struct coda_inode_info *cii;
	unsigned int len = PAGE_SIZE;
	char *p = kmap(page);
	lock_kernel();
	cii = ITOC(inode);
	error = venus_readlink(inode->i_sb, &cii->c_fid, p, &len);
	unlock_kernel();
	if (error)
		goto fail;
	SetPageUptodate(page);
	kunmap(page);
	unlock_page(page);
	return 0;
fail:
	SetPageError(page);
	kunmap(page);
	unlock_page(page);
	return error;
}