* We only need to convert from xdr once so future lookups are much simpler
  */
 static
-int nfs_readdir_filler(nfs_readdir_descriptor_t *desc, struct page* page)
+int nfs_readdir_filler(void *data, struct page* page)
 {
+       nfs_readdir_descriptor_t *desc = data;
        struct inode    *inode = file_inode(desc->file);
        int ret;
 
 static
 struct page *get_cache_page(nfs_readdir_descriptor_t *desc)
 {
-       return read_cache_page(desc->file->f_mapping,
-                       desc->page_index, (filler_t *)nfs_readdir_filler, desc);
+       return read_cache_page(desc->file->f_mapping, desc->page_index,
+                       nfs_readdir_filler, desc);
 }
 
 /*
 
  * and straight-forward than readdir caching.
  */
 
-static int nfs_symlink_filler(struct inode *inode, struct page *page)
+static int nfs_symlink_filler(void *data, struct page *page)
 {
+       struct inode *inode = data;
        int error;
 
        error = NFS_PROTO(inode)->readlink(inode, page, 0, PAGE_SIZE);
                err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping));
                if (err)
                        return err;
-               page = read_cache_page(&inode->i_data, 0,
-                                       (filler_t *)nfs_symlink_filler, inode);
+               page = read_cache_page(&inode->i_data, 0, nfs_symlink_filler,
+                               inode);
                if (IS_ERR(page))
                        return ERR_CAST(page);
        }