diff options
Diffstat (limited to 'sys/contrib/openzfs/config/kernel-writeback.m4')
| -rw-r--r-- | sys/contrib/openzfs/config/kernel-writeback.m4 | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/sys/contrib/openzfs/config/kernel-writeback.m4 b/sys/contrib/openzfs/config/kernel-writeback.m4 new file mode 100644 index 000000000000..334d65ef84b6 --- /dev/null +++ b/sys/contrib/openzfs/config/kernel-writeback.m4 @@ -0,0 +1,58 @@ +AC_DEFUN([ZFS_AC_KERNEL_SRC_WRITEPAGE_T], [ +	dnl # +	dnl # 6.3 API change +	dnl # The writepage_t function type now has its first argument as +	dnl # struct folio* instead of struct page* +	dnl # +	ZFS_LINUX_TEST_SRC([writepage_t_folio], [ +		#include <linux/writeback.h> +		static int putpage(struct folio *folio, +		    struct writeback_control *wbc, void *data) +		{ return 0; } +		writepage_t func = putpage; +	],[]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_WRITEPAGE_T], [ +	AC_MSG_CHECKING([whether int (*writepage_t)() takes struct folio*]) +	ZFS_LINUX_TEST_RESULT([writepage_t_folio], [ +		AC_MSG_RESULT(yes) +		AC_DEFINE(HAVE_WRITEPAGE_T_FOLIO, 1, +		   [int (*writepage_t)() takes struct folio*]) +	],[ +		AC_MSG_RESULT(no) +	]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_SRC_WRITE_CACHE_PAGES], [ +	dnl # +	dnl # 6.18 API change +	dnl # write_cache_pages() has been removed. +	dnl # +	ZFS_LINUX_TEST_SRC([write_cache_pages], [ +		#include <linux/writeback.h> +	], [ +		(void) write_cache_pages(NULL, NULL, NULL, NULL); +	]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_WRITE_CACHE_PAGES], [ +	AC_MSG_CHECKING([whether write_cache_pages() is available]) +	ZFS_LINUX_TEST_RESULT([write_cache_pages], [ +		AC_MSG_RESULT(yes) +		AC_DEFINE(HAVE_WRITE_CACHE_PAGES, 1, +		    [write_cache_pages() is available]) +	],[ +		AC_MSG_RESULT(no) +	]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_SRC_WRITEBACK], [ +	ZFS_AC_KERNEL_SRC_WRITEPAGE_T +	ZFS_AC_KERNEL_SRC_WRITE_CACHE_PAGES +]) + +AC_DEFUN([ZFS_AC_KERNEL_WRITEBACK], [ +	ZFS_AC_KERNEL_WRITEPAGE_T +	ZFS_AC_KERNEL_WRITE_CACHE_PAGES +]) | 
