On Thu, May 02, 2019 at 12:08:29AM -0600, William Kucharski wrote: > 1) You need to pass "filp" rather than "filp->private_data" to read_cache_pages() > in v9fs_fid_readpage(). With this patch v9fs_fid_readpage takes a void pointer that must be a FID, and we pass the FID everywhere: - v9fs_vfs_readpage passes filp->private_data - v9fs_vfs_readpages passes filp->private_data through read_cache_pages - v9fs_write_begin passes the local fid variable > > The patched code passes "filp->private_data" as the "data" parameter to > read_cache_pages(), which would generate a call to: > > filler(data, page) > > which would become a call to: > > static int v9fs_vfs_readpage(struct file *filp, struct page *page) > { > return v9fs_fid_readpage(filp->private_data, page); > } Except that we don't pass v9fs_vfs_readpage as the filler any more, we now pass v9fs_fid_readpage.