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