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 <faaland1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Chunwei Chen <david.chen@nutanix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7148
This commit is contained in:
Brian Behlendorf
2018-02-08 14:27:59 -08:00
parent 5b72a38d68
commit 18f57327e0
5 changed files with 37 additions and 5 deletions
+14
View File
@@ -578,4 +578,18 @@ current_time(struct inode *ip)
}
#endif
/*
* 4.16 API change
* Added iversion interface for managing inode version field.
*/
#ifdef HAVE_INODE_SET_IVERSION
#include <linux/iversion.h>
#else
static inline void
inode_set_iversion(struct inode *ip, u64 val)
{
ip->i_version = val;
}
#endif
#endif /* _ZFS_VFS_H */