1f9693befSMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_SRC_MKNOD], [ 2f9693befSMartin Matuska dnl # 3d411c1d6SMartin Matuska dnl # 6.3 API change 4d411c1d6SMartin Matuska dnl # The first arg is now struct mnt_idmap* 5d411c1d6SMartin Matuska dnl # 6d411c1d6SMartin Matuska ZFS_LINUX_TEST_SRC([mknod_mnt_idmap], [ 7d411c1d6SMartin Matuska #include <linux/fs.h> 8d411c1d6SMartin Matuska #include <linux/sched.h> 9d411c1d6SMartin Matuska 10*fd45b686SMartin Matuska static int tmp_mknod(struct mnt_idmap *idmap, 11d411c1d6SMartin Matuska struct inode *inode ,struct dentry *dentry, 12d411c1d6SMartin Matuska umode_t u, dev_t d) { return 0; } 13d411c1d6SMartin Matuska 14d411c1d6SMartin Matuska static const struct inode_operations 15d411c1d6SMartin Matuska iops __attribute__ ((unused)) = { 16d411c1d6SMartin Matuska .mknod = tmp_mknod, 17d411c1d6SMartin Matuska }; 18d411c1d6SMartin Matuska ],[]) 19d411c1d6SMartin Matuska 20d411c1d6SMartin 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 28*fd45b686SMartin Matuska static 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], [ 40d411c1d6SMartin Matuska AC_MSG_CHECKING([whether iops->mknod() takes struct mnt_idmap*]) 41d411c1d6SMartin Matuska ZFS_LINUX_TEST_RESULT([mknod_mnt_idmap], [ 42d411c1d6SMartin Matuska AC_MSG_RESULT(yes) 43d411c1d6SMartin Matuska AC_DEFINE(HAVE_IOPS_MKNOD_IDMAP, 1, 44d411c1d6SMartin Matuska [iops->mknod() takes struct mnt_idmap*]) 45d411c1d6SMartin Matuska ],[ 46d411c1d6SMartin 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 ]) 56d411c1d6SMartin Matuska]) 57