mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Linux 5.18 compat: use address_space_operations->readahead
->readpages was removed and replaced by ->readahead. Define zpl_readahead for kernels that don't have ->readpages. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Riccardo Schirone <rschirone91@gmail.com> Closes #13278
This commit is contained in:
committed by
Brian Behlendorf
parent
036e846abc
commit
7d524c068d
@@ -647,12 +647,29 @@ zpl_readpage_filler(void *data, struct page *pp)
|
||||
* paging. For simplicity, the code relies on read_cache_pages() to
|
||||
* correctly lock each page for IO and call zpl_readpage().
|
||||
*/
|
||||
#ifdef HAVE_VFS_READPAGES
|
||||
static int
|
||||
zpl_readpages(struct file *filp, struct address_space *mapping,
|
||||
struct list_head *pages, unsigned nr_pages)
|
||||
{
|
||||
return (read_cache_pages(mapping, pages, zpl_readpage_filler, NULL));
|
||||
}
|
||||
#else
|
||||
static void
|
||||
zpl_readahead(struct readahead_control *ractl)
|
||||
{
|
||||
struct page *page;
|
||||
|
||||
while ((page = readahead_page(ractl)) != NULL) {
|
||||
int ret;
|
||||
|
||||
ret = zpl_readpage_filler(NULL, page);
|
||||
put_page(page);
|
||||
if (ret)
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
zpl_putpage(struct page *pp, struct writeback_control *wbc, void *data)
|
||||
@@ -1135,7 +1152,11 @@ zpl_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
|
||||
|
||||
const struct address_space_operations zpl_address_space_operations = {
|
||||
#ifdef HAVE_VFS_READPAGES
|
||||
.readpages = zpl_readpages,
|
||||
#else
|
||||
.readahead = zpl_readahead,
|
||||
#endif
|
||||
.readpage = zpl_readpage,
|
||||
.writepage = zpl_writepage,
|
||||
.writepages = zpl_writepages,
|
||||
|
||||
Reference in New Issue
Block a user