Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c87c5f55 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Alistair Strachan
Browse files

UPSTREAM: nfs: pass the correct prototype to read_cache_page



Fix the callbacks NFS passes to read_cache_page to actually have the
proper type expected.  Casting around function pointers can easily
hide typing bugs, and defeats control flow protection.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
Change-Id: Ia245fc02d550d34d80f4e8ebdeb6b744115ffdb3
(cherry picked from commit a46126ccc77e764429d63bf958d117f607f4b6c6)
Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
parent e335905b
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -664,8 +664,9 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *desc, struct page *page,
 * 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;

@@ -697,8 +698,8 @@ void cache_page_release(nfs_readdir_descriptor_t *desc)
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);
}

/*
+4 −3
Original line number Diff line number Diff line
@@ -26,8 +26,9 @@
 * 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);
@@ -65,8 +66,8 @@ static const char *nfs_get_link(struct dentry *dentry,
		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);
	}