| dnl # |
| dnl # 2.6.39 API change |
| dnl # The security_inode_init_security() function now takes an additional |
| dnl # qstr argument which must be passed in from the dentry if available. |
| dnl # Passing a NULL is safe when no qstr is available the relevant |
| dnl # security checks will just be skipped. |
| dnl # |
| AC_DEFUN([ZFS_AC_KERNEL_SRC_SECURITY_INODE_INIT_SECURITY_6ARGS], [ |
| ZFS_LINUX_TEST_SRC([security_inode_init_security_6args], [ |
| #include <linux/security.h> |
| ],[ |
| struct inode *ip __attribute__ ((unused)) = NULL; |
| struct inode *dip __attribute__ ((unused)) = NULL; |
| const struct qstr *str __attribute__ ((unused)) = NULL; |
| char *name __attribute__ ((unused)) = NULL; |
| void *value __attribute__ ((unused)) = NULL; |
| size_t len __attribute__ ((unused)) = 0; |
| |
| security_inode_init_security(ip, dip, str, &name, &value, &len); |
| ]) |
| ]) |
| |
| AC_DEFUN([ZFS_AC_KERNEL_SECURITY_INODE_INIT_SECURITY_6ARGS], [ |
| AC_MSG_CHECKING([whether security_inode_init_security wants 6 args]) |
| ZFS_LINUX_TEST_RESULT([security_inode_init_security_6args], [ |
| AC_MSG_RESULT(yes) |
| AC_DEFINE(HAVE_6ARGS_SECURITY_INODE_INIT_SECURITY, 1, |
| [security_inode_init_security wants 6 args]) |
| ],[ |
| AC_MSG_RESULT(no) |
| ]) |
| ]) |
| |
| dnl # |
| dnl # 3.2 API change |
| dnl # The security_inode_init_security() API has been changed to include |
| dnl # a filesystem specific callback to write security extended attributes. |
| dnl # This was done to support the initialization of multiple LSM xattrs |
| dnl # and the EVM xattr. |
| dnl # |
| AC_DEFUN([ZFS_AC_KERNEL_SRC_SECURITY_INODE_INIT_SECURITY_CALLBACK], [ |
| ZFS_LINUX_TEST_SRC([security_inode_init_security], [ |
| #include <linux/security.h> |
| ],[ |
| struct inode *ip __attribute__ ((unused)) = NULL; |
| struct inode *dip __attribute__ ((unused)) = NULL; |
| const struct qstr *str __attribute__ ((unused)) = NULL; |
| initxattrs func __attribute__ ((unused)) = NULL; |
| |
| security_inode_init_security(ip, dip, str, func, NULL); |
| ]) |
| ]) |
| |
| AC_DEFUN([ZFS_AC_KERNEL_SECURITY_INODE_INIT_SECURITY_CALLBACK], [ |
| AC_MSG_CHECKING([whether security_inode_init_security wants callback]) |
| ZFS_LINUX_TEST_RESULT([security_inode_init_security], [ |
| AC_MSG_RESULT(yes) |
| AC_DEFINE(HAVE_CALLBACK_SECURITY_INODE_INIT_SECURITY, 1, |
| [security_inode_init_security wants callback]) |
| ],[ |
| AC_MSG_RESULT(no) |
| ]) |
| ]) |
| |
| AC_DEFUN([ZFS_AC_KERNEL_SRC_SECURITY_INODE], [ |
| ZFS_AC_KERNEL_SRC_SECURITY_INODE_INIT_SECURITY_6ARGS |
| ZFS_AC_KERNEL_SRC_SECURITY_INODE_INIT_SECURITY_CALLBACK |
| ]) |
| |
| AC_DEFUN([ZFS_AC_KERNEL_SECURITY_INODE], [ |
| ZFS_AC_KERNEL_SECURITY_INODE_INIT_SECURITY_6ARGS |
| ZFS_AC_KERNEL_SECURITY_INODE_INIT_SECURITY_CALLBACK |
| ]) |