diff options
author | Yuxuan Shui <[email protected]> | 2012-10-12 23:20:58 +0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-10-14 14:42:25 -0700 |
commit | 558ef6d0805457654938dbe56c9a19b0121a712d (patch) | |
tree | 0d957d0f96a5eb2fe7908c7205e5f49b1485cc8f /config/kernel-create-nameidata.m4 | |
parent | 8f195a908ffaa8faf8f4c8a0e701e44ae3859e33 (diff) |
Linux 3.6 compat, iops->create()
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 <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Issue #873
Diffstat (limited to 'config/kernel-create-nameidata.m4')
-rw-r--r-- | config/kernel-create-nameidata.m4 | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/config/kernel-create-nameidata.m4 b/config/kernel-create-nameidata.m4 new file mode 100644 index 000000000..100f07761 --- /dev/null +++ b/config/kernel-create-nameidata.m4 @@ -0,0 +1,26 @@ +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) + ]) +]) |