aboutsummaryrefslogtreecommitdiffstats
path: root/config/kernel-inode-set-iversion.m4
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2018-02-08 14:27:59 -0800
committerBrian Behlendorf <[email protected]>2018-02-08 21:25:19 -0800
commit18f57327e0c2c669034e1fff1260877fd70c3038 (patch)
tree4e4b6a48a155c4995d1fc1eb5fd418ba8643695e /config/kernel-inode-set-iversion.m4
parent5b72a38d68453c91bf57cba11789a240199b695d (diff)
Linux 4.16 compat: inode_set_iversion()
A new interface was added to manipulate the version field of an inode. Add a inode_set_iversion() wrapper for older kernels and use the new interface when available. The i_version field was dropped from the trace point due to the switch to an atomic64_t i_version type. Reviewed-by: Olaf Faaland <[email protected]> Reviewed-by: Giuseppe Di Natale <[email protected]> Reviewed-by: Chunwei Chen <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #7148
Diffstat (limited to 'config/kernel-inode-set-iversion.m4')
-rw-r--r--config/kernel-inode-set-iversion.m419
1 files changed, 19 insertions, 0 deletions
diff --git a/config/kernel-inode-set-iversion.m4 b/config/kernel-inode-set-iversion.m4
new file mode 100644
index 000000000..9a7d7890e
--- /dev/null
+++ b/config/kernel-inode-set-iversion.m4
@@ -0,0 +1,19 @@
+dnl #
+dnl # 4.16 API change
+dnl # inode_set_iversion introduced to set i_version
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_INODE_SET_IVERSION], [
+ AC_MSG_CHECKING([whether inode_set_iversion() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/iversion.h>
+ ],[
+ struct inode inode;
+ inode_set_iversion(&inode, 1);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_INODE_SET_IVERSION, 1,
+ [inode_set_iversion() exists])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])