2021-07-26 20:55:55 +03:00
|
|
|
dnl #
|
|
|
|
dnl # Linux 5.14 adds a change to require set_page_dirty to be manually
|
|
|
|
dnl # wired up in struct address_space_operations. Determine if this needs
|
|
|
|
dnl # to be done. This patch set also introduced __set_page_dirty_nobuffers
|
|
|
|
dnl # declaration in linux/pagemap.h, so these tests look for the presence
|
|
|
|
dnl # of that function to tell the compiler to assign set_page_dirty in
|
|
|
|
dnl # module/os/linux/zfs/zpl_file.c
|
|
|
|
dnl #
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS], [
|
|
|
|
ZFS_LINUX_TEST_SRC([vfs_has_set_page_dirty_nobuffers], [
|
|
|
|
#include <linux/pagemap.h>
|
|
|
|
#include <linux/fs.h>
|
|
|
|
|
|
|
|
static const struct address_space_operations
|
|
|
|
aops __attribute__ ((unused)) = {
|
|
|
|
.set_page_dirty = __set_page_dirty_nobuffers,
|
|
|
|
};
|
|
|
|
],[])
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS], [
|
|
|
|
dnl #
|
|
|
|
dnl # Linux 5.14 change requires set_page_dirty() to be assigned
|
|
|
|
dnl # in address_space_operations()
|
|
|
|
dnl #
|
2022-06-01 02:42:49 +03:00
|
|
|
AC_MSG_CHECKING([whether __set_page_dirty_nobuffers exists])
|
2021-07-26 20:55:55 +03:00
|
|
|
ZFS_LINUX_TEST_RESULT([vfs_has_set_page_dirty_nobuffers], [
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
AC_DEFINE(HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS, 1,
|
|
|
|
[__set_page_dirty_nobuffers exists])
|
|
|
|
],[
|
|
|
|
AC_MSG_RESULT([no])
|
|
|
|
])
|
|
|
|
])
|