1716fd348SMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_SRC_PERMISSION], [ 2716fd348SMartin Matuska dnl # 3d411c1d6SMartin Matuska dnl # 6.3 API change 4d411c1d6SMartin Matuska dnl # iops->permission() now takes struct mnt_idmap* 5d411c1d6SMartin Matuska dnl # as its first arg 6d411c1d6SMartin Matuska dnl # 7d411c1d6SMartin Matuska ZFS_LINUX_TEST_SRC([permission_mnt_idmap], [ 8d411c1d6SMartin Matuska #include <linux/fs.h> 9d411c1d6SMartin Matuska #include <linux/sched.h> 10d411c1d6SMartin Matuska 11fd45b686SMartin Matuska static int test_permission(struct mnt_idmap *idmap, 12d411c1d6SMartin Matuska struct inode *inode, int mask) { return 0; } 13d411c1d6SMartin Matuska 14d411c1d6SMartin Matuska static const struct inode_operations 15d411c1d6SMartin Matuska iops __attribute__ ((unused)) = { 16fd45b686SMartin Matuska .permission = test_permission, 17d411c1d6SMartin Matuska }; 18d411c1d6SMartin Matuska ],[]) 19d411c1d6SMartin Matuska 20d411c1d6SMartin Matuska dnl # 21716fd348SMartin Matuska dnl # 5.12 API change that added the struct user_namespace* arg 22716fd348SMartin Matuska dnl # to the front of this function type's arg list. 23716fd348SMartin Matuska dnl # 24716fd348SMartin Matuska ZFS_LINUX_TEST_SRC([permission_userns], [ 25716fd348SMartin Matuska #include <linux/fs.h> 26716fd348SMartin Matuska #include <linux/sched.h> 27716fd348SMartin Matuska 28fd45b686SMartin Matuska static int test_permission(struct user_namespace *userns, 29716fd348SMartin Matuska struct inode *inode, int mask) { return 0; } 30716fd348SMartin Matuska 31716fd348SMartin Matuska static const struct inode_operations 32716fd348SMartin Matuska iops __attribute__ ((unused)) = { 33fd45b686SMartin Matuska .permission = test_permission, 34716fd348SMartin Matuska }; 35716fd348SMartin Matuska ],[]) 36716fd348SMartin Matuska]) 37716fd348SMartin Matuska 38716fd348SMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_PERMISSION], [ 39d411c1d6SMartin Matuska AC_MSG_CHECKING([whether iops->permission() takes struct mnt_idmap*]) 40d411c1d6SMartin Matuska ZFS_LINUX_TEST_RESULT([permission_mnt_idmap], [ 41d411c1d6SMartin Matuska AC_MSG_RESULT(yes) 42d411c1d6SMartin Matuska AC_DEFINE(HAVE_IOPS_PERMISSION_IDMAP, 1, 43d411c1d6SMartin Matuska [iops->permission() takes struct mnt_idmap*]) 44d411c1d6SMartin Matuska ],[ 45*7a7741afSMartin Matuska AC_MSG_RESULT(no) 46*7a7741afSMartin Matuska 47716fd348SMartin Matuska AC_MSG_CHECKING([whether iops->permission() takes struct user_namespace*]) 48716fd348SMartin Matuska ZFS_LINUX_TEST_RESULT([permission_userns], [ 49716fd348SMartin Matuska AC_MSG_RESULT(yes) 50716fd348SMartin Matuska AC_DEFINE(HAVE_IOPS_PERMISSION_USERNS, 1, 51716fd348SMartin Matuska [iops->permission() takes struct user_namespace*]) 52716fd348SMartin Matuska ],[ 53716fd348SMartin Matuska AC_MSG_RESULT(no) 54716fd348SMartin Matuska ]) 55716fd348SMartin Matuska ]) 56d411c1d6SMartin Matuska]) 57