xref: /freebsd/sys/contrib/openzfs/config/kernel-writeback.m4 (revision df21a004be237a1dccd03c7b47254625eea62fa9)
1AC_DEFUN([ZFS_AC_KERNEL_SRC_WRITEPAGE_T], [
2	dnl #
3	dnl # 6.3 API change
4	dnl # The writepage_t function type now has its first argument as
5	dnl # struct folio* instead of struct page*
6	dnl #
7	ZFS_LINUX_TEST_SRC([writepage_t_folio], [
8		#include <linux/writeback.h>
9		static int putpage(struct folio *folio,
10		    struct writeback_control *wbc, void *data)
11		{ return 0; }
12		writepage_t func = putpage;
13	],[])
14])
15
16AC_DEFUN([ZFS_AC_KERNEL_WRITEPAGE_T], [
17	AC_MSG_CHECKING([whether int (*writepage_t)() takes struct folio*])
18	ZFS_LINUX_TEST_RESULT([writepage_t_folio], [
19		AC_MSG_RESULT(yes)
20		AC_DEFINE(HAVE_WRITEPAGE_T_FOLIO, 1,
21		   [int (*writepage_t)() takes struct folio*])
22	],[
23		AC_MSG_RESULT(no)
24	])
25])
26
27AC_DEFUN([ZFS_AC_KERNEL_SRC_WRITE_CACHE_PAGES], [
28	dnl #
29	dnl # 6.18 API change
30	dnl # write_cache_pages() has been removed.
31	dnl #
32	ZFS_LINUX_TEST_SRC([write_cache_pages], [
33		#include <linux/writeback.h>
34	], [
35		(void) write_cache_pages(NULL, NULL, NULL, NULL);
36	])
37])
38
39AC_DEFUN([ZFS_AC_KERNEL_WRITE_CACHE_PAGES], [
40	AC_MSG_CHECKING([whether write_cache_pages() is available])
41	ZFS_LINUX_TEST_RESULT([write_cache_pages], [
42		AC_MSG_RESULT(yes)
43		AC_DEFINE(HAVE_WRITE_CACHE_PAGES, 1,
44		    [write_cache_pages() is available])
45	],[
46		AC_MSG_RESULT(no)
47	])
48])
49
50AC_DEFUN([ZFS_AC_KERNEL_SRC_WRITEBACK], [
51	ZFS_AC_KERNEL_SRC_WRITEPAGE_T
52	ZFS_AC_KERNEL_SRC_WRITE_CACHE_PAGES
53])
54
55AC_DEFUN([ZFS_AC_KERNEL_WRITEBACK], [
56	ZFS_AC_KERNEL_WRITEPAGE_T
57	ZFS_AC_KERNEL_WRITE_CACHE_PAGES
58])
59