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