freebsd-nq/config/kernel-create-umode-t.m4
Brian Behlendorf b39d3b9f7b Linux 3.3 compat, iops->create()/mkdir()/mknod()
The mode argument of iops->create()/mkdir()/mknod() was changed from
an 'int' to a 'umode_t'.  To prevent a compiler warning an autoconf
check was added to detect the API change and then correctly set a
zpl_umode_t typedef.  There is no functional change.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #701
2012-04-30 12:52:38 -07:00

27 lines
875 B
Plaintext

dnl #
dnl # 3.3 API change
dnl # The VFS .create, .mkdir and .mknod callbacks were updated to take a
dnl # umode_t type rather than an int. The expectation is that any backport
dnl # would also change all three prototypes. However, if it turns out that
dnl # some distribution doesn't backport the whole thing this could be
dnl # broken apart in to three seperate checks.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_CREATE_UMODE_T], [
AC_MSG_CHECKING([whether iops->create()/mkdir()/mknod() take umode_t])
ZFS_LINUX_TRY_COMPILE([
#include <linux/fs.h>
],[
int (*create) (struct inode *, struct dentry *, umode_t,
struct nameidata *) = NULL;
struct inode_operations iops __attribute__ ((unused)) = {
.create = create,
};
],[
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_CREATE_UMODE_T, 1,
[iops->create()/mkdir()/mknod() take umode_t])
],[
AC_MSG_RESULT(no)
])
])