diff options
author | Riccardo Schirone <[email protected]> | 2022-04-02 01:15:25 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2022-04-06 13:15:27 -0700 |
commit | 35ddd8ee2e5fdbaa5b0d94c063bbc1a79ab12cb1 (patch) | |
tree | 027fd97aa560ed0bf718cc65cd6fa0b383b80822 /module | |
parent | 10a9f5fc47acc6c9d3475023001264ca5fb741a6 (diff) |
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 <[email protected]>
Signed-off-by: Riccardo Schirone <[email protected]>
Closes #13278
Diffstat (limited to 'module')
-rw-r--r-- | module/os/linux/zfs/zpl_file.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/module/os/linux/zfs/zpl_file.c b/module/os/linux/zfs/zpl_file.c index f1241c443..4965815ec 100644 --- a/module/os/linux/zfs/zpl_file.c +++ b/module/os/linux/zfs/zpl_file.c @@ -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) @@ -1027,7 +1044,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, |