1*eda14cbcSMatt Macydnl #
2*eda14cbcSMatt Macydnl # 4.14 API change
3*eda14cbcSMatt Macydnl # kernel_write() which was introduced in 3.9 was updated to take
4*eda14cbcSMatt Macydnl # the offset as a pointer which is needed by vn_rdwr().
5*eda14cbcSMatt Macydnl #
6*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_WRITE], [
7*eda14cbcSMatt Macy	ZFS_LINUX_TEST_SRC([kernel_write], [
8*eda14cbcSMatt Macy		#include <linux/fs.h>
9*eda14cbcSMatt Macy	],[
10*eda14cbcSMatt Macy		struct file *file = NULL;
11*eda14cbcSMatt Macy		const void *buf = NULL;
12*eda14cbcSMatt Macy		size_t count = 0;
13*eda14cbcSMatt Macy		loff_t *pos = NULL;
14*eda14cbcSMatt Macy		ssize_t ret;
15*eda14cbcSMatt Macy
16*eda14cbcSMatt Macy		ret = kernel_write(file, buf, count, pos);
17*eda14cbcSMatt Macy	])
18*eda14cbcSMatt Macy])
19*eda14cbcSMatt Macy
20*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_WRITE], [
21*eda14cbcSMatt Macy	AC_MSG_CHECKING([whether kernel_write() takes loff_t pointer])
22*eda14cbcSMatt Macy	ZFS_LINUX_TEST_RESULT([kernel_write], [
23*eda14cbcSMatt Macy		AC_MSG_RESULT(yes)
24*eda14cbcSMatt Macy		AC_DEFINE(HAVE_KERNEL_WRITE_PPOS, 1,
25*eda14cbcSMatt Macy		    [kernel_write() take loff_t pointer])
26*eda14cbcSMatt Macy	],[
27*eda14cbcSMatt Macy		AC_MSG_RESULT(no)
28*eda14cbcSMatt Macy	])
29*eda14cbcSMatt Macy])
30*eda14cbcSMatt Macy
31*eda14cbcSMatt Macydnl #
32*eda14cbcSMatt Macydnl # 4.14 API change
33*eda14cbcSMatt Macydnl # kernel_read() which has existed for forever was updated to take
34*eda14cbcSMatt Macydnl # the offset as a pointer which is needed by vn_rdwr().
35*eda14cbcSMatt Macydnl #
36*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_READ], [
37*eda14cbcSMatt Macy	ZFS_LINUX_TEST_SRC([kernel_read], [
38*eda14cbcSMatt Macy		#include <linux/fs.h>
39*eda14cbcSMatt Macy	],[
40*eda14cbcSMatt Macy		struct file *file = NULL;
41*eda14cbcSMatt Macy		void *buf = NULL;
42*eda14cbcSMatt Macy		size_t count = 0;
43*eda14cbcSMatt Macy		loff_t *pos = NULL;
44*eda14cbcSMatt Macy		ssize_t ret;
45*eda14cbcSMatt Macy
46*eda14cbcSMatt Macy		ret = kernel_read(file, buf, count, pos);
47*eda14cbcSMatt Macy	])
48*eda14cbcSMatt Macy])
49*eda14cbcSMatt Macy
50*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_READ], [
51*eda14cbcSMatt Macy	AC_MSG_CHECKING([whether kernel_read() takes loff_t pointer])
52*eda14cbcSMatt Macy	ZFS_LINUX_TEST_RESULT([kernel_read], [
53*eda14cbcSMatt Macy		AC_MSG_RESULT(yes)
54*eda14cbcSMatt Macy		AC_DEFINE(HAVE_KERNEL_READ_PPOS, 1,
55*eda14cbcSMatt Macy		    [kernel_read() take loff_t pointer])
56*eda14cbcSMatt Macy	],[
57*eda14cbcSMatt Macy		AC_MSG_RESULT(no)
58*eda14cbcSMatt Macy	])
59*eda14cbcSMatt Macy])
60*eda14cbcSMatt Macy
61*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_SRC_RW], [
62*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SRC_WRITE
63*eda14cbcSMatt Macy	ZFS_AC_KERNEL_SRC_READ
64*eda14cbcSMatt Macy])
65*eda14cbcSMatt Macy
66*eda14cbcSMatt MacyAC_DEFUN([ZFS_AC_KERNEL_RW], [
67*eda14cbcSMatt Macy	ZFS_AC_KERNEL_WRITE
68*eda14cbcSMatt Macy	ZFS_AC_KERNEL_READ
69*eda14cbcSMatt Macy])
70