558ef6d080
As of Linux commit ebfc3b49a7ac25920cb5be5445f602e51d2ea559 the struct nameidata is no longer passed to iops->create. Instead only the result of (inamedata->flags & LOOKUP_EXCL) is passed. ZFS like almost all Linux fileystems never made use of this so only the prototype needs to be wrapped for compatibility. Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #873
27 lines
714 B
Plaintext
27 lines
714 B
Plaintext
dnl #
|
|
dnl # 3.6 API change
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_CREATE_NAMEIDATA], [
|
|
AC_MSG_CHECKING([whether iops->create() takes struct nameidata])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/fs.h>
|
|
],[
|
|
#ifdef HAVE_MKDIR_UMODE_T
|
|
int (*inode_create) (struct inode *,struct dentry *,
|
|
umode_t, struct nameidata *) = NULL;
|
|
#else
|
|
int (*inode_create) (struct inode *,struct dentry *,
|
|
int, struct nameidata *) = NULL;
|
|
#endif
|
|
struct inode_operations iops __attribute__ ((unused)) = {
|
|
.create = inode_create,
|
|
};
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_CREATE_NAMEIDATA, 1,
|
|
[iops->create() operation takes nameidata])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|