xref: /freebsd/sys/contrib/openzfs/config/kernel-mknod.m4 (revision d411c1d696ef35d60f8c3564e5eef7aeafa2fece)
1f9693befSMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_SRC_MKNOD], [
2f9693befSMartin Matuska	dnl #
3*d411c1d6SMartin Matuska	dnl # 6.3 API change
4*d411c1d6SMartin Matuska	dnl # The first arg is now struct mnt_idmap*
5*d411c1d6SMartin Matuska	dnl #
6*d411c1d6SMartin Matuska	ZFS_LINUX_TEST_SRC([mknod_mnt_idmap], [
7*d411c1d6SMartin Matuska		#include <linux/fs.h>
8*d411c1d6SMartin Matuska		#include <linux/sched.h>
9*d411c1d6SMartin Matuska
10*d411c1d6SMartin Matuska		int tmp_mknod(struct mnt_idmap *idmap,
11*d411c1d6SMartin Matuska		    struct inode *inode ,struct dentry *dentry,
12*d411c1d6SMartin Matuska		    umode_t u, dev_t d) { return 0; }
13*d411c1d6SMartin Matuska
14*d411c1d6SMartin Matuska		static const struct inode_operations
15*d411c1d6SMartin Matuska			iops __attribute__ ((unused)) = {
16*d411c1d6SMartin Matuska			.mknod          = tmp_mknod,
17*d411c1d6SMartin Matuska		};
18*d411c1d6SMartin Matuska	],[])
19*d411c1d6SMartin Matuska
20*d411c1d6SMartin Matuska	dnl #
21f9693befSMartin Matuska	dnl # 5.12 API change that added the struct user_namespace* arg
22f9693befSMartin Matuska	dnl # to the front of this function type's arg list.
23f9693befSMartin Matuska	dnl #
24f9693befSMartin Matuska	ZFS_LINUX_TEST_SRC([mknod_userns], [
25f9693befSMartin Matuska		#include <linux/fs.h>
26f9693befSMartin Matuska		#include <linux/sched.h>
27f9693befSMartin Matuska
28f9693befSMartin Matuska		int tmp_mknod(struct user_namespace *userns,
29f9693befSMartin Matuska		    struct inode *inode ,struct dentry *dentry,
30f9693befSMartin Matuska		    umode_t u, dev_t d) { return 0; }
31f9693befSMartin Matuska
32f9693befSMartin Matuska		static const struct inode_operations
33f9693befSMartin Matuska			iops __attribute__ ((unused)) = {
34f9693befSMartin Matuska			.mknod		= tmp_mknod,
35f9693befSMartin Matuska		};
36f9693befSMartin Matuska	],[])
37f9693befSMartin Matuska])
38f9693befSMartin Matuska
39f9693befSMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_MKNOD], [
40*d411c1d6SMartin Matuska	AC_MSG_CHECKING([whether iops->mknod() takes struct mnt_idmap*])
41*d411c1d6SMartin Matuska	ZFS_LINUX_TEST_RESULT([mknod_mnt_idmap], [
42*d411c1d6SMartin Matuska		AC_MSG_RESULT(yes)
43*d411c1d6SMartin Matuska		AC_DEFINE(HAVE_IOPS_MKNOD_IDMAP, 1,
44*d411c1d6SMartin Matuska		    [iops->mknod() takes struct mnt_idmap*])
45*d411c1d6SMartin Matuska	],[
46*d411c1d6SMartin Matuska		AC_MSG_RESULT(no)
47f9693befSMartin Matuska		AC_MSG_CHECKING([whether iops->mknod() takes struct user_namespace*])
48f9693befSMartin Matuska		ZFS_LINUX_TEST_RESULT([mknod_userns], [
49f9693befSMartin Matuska			AC_MSG_RESULT(yes)
50f9693befSMartin Matuska			AC_DEFINE(HAVE_IOPS_MKNOD_USERNS, 1,
51f9693befSMartin Matuska			    [iops->mknod() takes struct user_namespace*])
52f9693befSMartin Matuska		],[
53f9693befSMartin Matuska			AC_MSG_RESULT(no)
54f9693befSMartin Matuska		])
55f9693befSMartin Matuska	])
56*d411c1d6SMartin Matuska])
57