xref: /freebsd-src/sys/contrib/openzfs/config/kernel-vfs-set_page_dirty.m4 (revision e3aa18ad71782a73d3dd9dd3d526bbd2b607ca16)
11f88aa09SMartin Matuskadnl #
21f88aa09SMartin Matuskadnl # Linux 5.14 adds a change to require set_page_dirty to be manually
31f88aa09SMartin Matuskadnl # wired up in struct address_space_operations. Determine if this needs
41f88aa09SMartin Matuskadnl # to be done. This patch set also introduced __set_page_dirty_nobuffers
51f88aa09SMartin Matuskadnl # declaration in linux/pagemap.h, so these tests look for the presence
61f88aa09SMartin Matuskadnl # of that function to tell the compiler to assign set_page_dirty in
71f88aa09SMartin Matuskadnl # module/os/linux/zfs/zpl_file.c
81f88aa09SMartin Matuskadnl #
91f88aa09SMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS], [
101f88aa09SMartin Matuska	ZFS_LINUX_TEST_SRC([vfs_has_set_page_dirty_nobuffers], [
111f88aa09SMartin Matuska		#include <linux/pagemap.h>
121f88aa09SMartin Matuska		#include <linux/fs.h>
131f88aa09SMartin Matuska
141f88aa09SMartin Matuska		static const struct address_space_operations
151f88aa09SMartin Matuska		    aops __attribute__ ((unused)) = {
161f88aa09SMartin Matuska			.set_page_dirty = __set_page_dirty_nobuffers,
171f88aa09SMartin Matuska		};
181f88aa09SMartin Matuska	],[])
191f88aa09SMartin Matuska])
201f88aa09SMartin Matuska
211f88aa09SMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS], [
221f88aa09SMartin Matuska	dnl #
231f88aa09SMartin Matuska	dnl # Linux 5.14 change requires set_page_dirty() to be assigned
241f88aa09SMartin Matuska	dnl # in address_space_operations()
251f88aa09SMartin Matuska	dnl #
26*e3aa18adSMartin Matuska	AC_MSG_CHECKING([whether __set_page_dirty_nobuffers exists])
271f88aa09SMartin Matuska	ZFS_LINUX_TEST_RESULT([vfs_has_set_page_dirty_nobuffers], [
281f88aa09SMartin Matuska		AC_MSG_RESULT([yes])
291f88aa09SMartin Matuska		AC_DEFINE(HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS, 1,
301f88aa09SMartin Matuska			[__set_page_dirty_nobuffers exists])
311f88aa09SMartin Matuska	],[
321f88aa09SMartin Matuska		AC_MSG_RESULT([no])
331f88aa09SMartin Matuska	])
341f88aa09SMartin Matuska])
35