mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 03:19:35 +03:00
b052035990
Linux page migration code won't wait for writeback to complete unless it needs to call release_folio. Call SetPagePrivate wherever PageUptodate is set and define .release_folio, to cause fallback_migrate_folio to wait for us. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: tstabrawa <59430211+tstabrawa@users.noreply.github.com> Closes #15140 Closes #16568
34 lines
888 B
Plaintext
34 lines
888 B
Plaintext
dnl #
|
|
dnl # Linux 5.18 uses invalidate_folio in lieu of invalidate_page
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_INVALIDATE_FOLIO], [
|
|
ZFS_LINUX_TEST_SRC([vfs_has_invalidate_folio], [
|
|
#include <linux/fs.h>
|
|
|
|
static void
|
|
test_invalidate_folio(struct folio *folio, size_t offset,
|
|
size_t len) {
|
|
(void) folio; (void) offset; (void) len;
|
|
return;
|
|
}
|
|
|
|
static const struct address_space_operations
|
|
aops __attribute__ ((unused)) = {
|
|
.invalidate_folio = test_invalidate_folio,
|
|
};
|
|
],[])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_VFS_INVALIDATE_FOLIO], [
|
|
dnl #
|
|
dnl # Linux 5.18 uses invalidate_folio in lieu of invalidate_page
|
|
dnl #
|
|
AC_MSG_CHECKING([whether invalidate_folio exists])
|
|
ZFS_LINUX_TEST_RESULT([vfs_has_invalidate_folio], [
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE(HAVE_VFS_INVALIDATE_FOLIO, 1, [invalidate_folio exists])
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
])
|
|
])
|