1*22649d4dSMartin Matuskadnl # SPDX-License-Identifier: CDDL-1.0 2*22649d4dSMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_SRC_IDMAP], [ 3*22649d4dSMartin Matuska dnl # 4*22649d4dSMartin Matuska dnl # 6.3 API change 5*22649d4dSMartin Matuska dnl # The first arg is changed to struct mnt_idmap * 6*22649d4dSMartin Matuska dnl # 7*22649d4dSMartin Matuska ZFS_LINUX_TEST_SRC([generic_permission_idmap_mntidmap], [ 8*22649d4dSMartin Matuska #include <linux/fs.h> 9*22649d4dSMartin Matuska ], [ 10*22649d4dSMartin Matuska struct mnt_idmap *idmap = NULL; 11*22649d4dSMartin Matuska struct inode *inode = NULL; 12*22649d4dSMartin Matuska int mask = 0; 13*22649d4dSMartin Matuska int ret = generic_permission(idmap, inode, mask); 14*22649d4dSMartin Matuska (void) ret; 15*22649d4dSMartin Matuska ]) 16*22649d4dSMartin Matuska 17*22649d4dSMartin Matuska dnl # 18*22649d4dSMartin Matuska dnl # 5.12 API change that added the struct user_namespace* arg 19*22649d4dSMartin Matuska dnl # to the front of this function type's arg list. 20*22649d4dSMartin Matuska dnl # 21*22649d4dSMartin Matuska ZFS_LINUX_TEST_SRC([generic_permission_idmap_userns], [ 22*22649d4dSMartin Matuska #include <linux/fs.h> 23*22649d4dSMartin Matuska ], [ 24*22649d4dSMartin Matuska struct user_namespace *userns = NULL; 25*22649d4dSMartin Matuska struct inode *inode = NULL; 26*22649d4dSMartin Matuska int mask = 0; 27*22649d4dSMartin Matuska int ret = generic_permission(userns, inode, mask); 28*22649d4dSMartin Matuska (void) ret; 29*22649d4dSMartin Matuska ]) 30*22649d4dSMartin Matuska 31*22649d4dSMartin Matuska dnl # 32*22649d4dSMartin Matuska dnl # Before 5.12 user namespace was part of kcred 33*22649d4dSMartin Matuska dnl # 34*22649d4dSMartin Matuska ZFS_LINUX_TEST_SRC([generic_permission_idmap_none], [ 35*22649d4dSMartin Matuska #include <linux/fs.h> 36*22649d4dSMartin Matuska ], [ 37*22649d4dSMartin Matuska struct inode *inode = NULL; 38*22649d4dSMartin Matuska int mask = 0; 39*22649d4dSMartin Matuska int ret = generic_permission(inode, mask); 40*22649d4dSMartin Matuska (void) ret; 41*22649d4dSMartin Matuska ]) 42*22649d4dSMartin Matuska]) 43*22649d4dSMartin Matuska 44*22649d4dSMartin MatuskaAC_DEFUN([ZFS_AC_KERNEL_IDMAP], [ 45*22649d4dSMartin Matuska AC_MSG_CHECKING([for id mapping mechanism]) 46*22649d4dSMartin Matuska ZFS_LINUX_TEST_RESULT([generic_permission_idmap_mntidmap], [ 47*22649d4dSMartin Matuska AC_MSG_RESULT([mnt_idmap]) 48*22649d4dSMartin Matuska AC_DEFINE(HAVE_IDMAP_MNTIDMAP, 1, 49*22649d4dSMartin Matuska [id mapping mechanism is mnt_idmap]) 50*22649d4dSMartin Matuska ],[ 51*22649d4dSMartin Matuska ZFS_LINUX_TEST_RESULT([generic_permission_idmap_userns], [ 52*22649d4dSMartin Matuska AC_MSG_RESULT([user_namespace]) 53*22649d4dSMartin Matuska AC_DEFINE(HAVE_IDMAP_USERNS, 1, 54*22649d4dSMartin Matuska [id mapping mechanism is user_namespace]) 55*22649d4dSMartin Matuska ],[ 56*22649d4dSMartin Matuska ZFS_LINUX_TEST_RESULT([generic_permission_idmap_none], [ 57*22649d4dSMartin Matuska AC_MSG_RESULT([none]) 58*22649d4dSMartin Matuska ],[ 59*22649d4dSMartin Matuska AC_MSG_RESULT([unknown]) 60*22649d4dSMartin Matuska ZFS_LINUX_TEST_ERROR([generic_permission]) 61*22649d4dSMartin Matuska ]) 62*22649d4dSMartin Matuska ]) 63*22649d4dSMartin Matuska ]) 64*22649d4dSMartin Matuska]) 65