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