diff options
author | Brian Behlendorf <[email protected]> | 2018-02-08 14:27:59 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-02-08 21:25:19 -0800 |
commit | 18f57327e0c2c669034e1fff1260877fd70c3038 (patch) | |
tree | 4e4b6a48a155c4995d1fc1eb5fd418ba8643695e /include | |
parent | 5b72a38d68453c91bf57cba11789a240199b695d (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 'include')
-rw-r--r-- | include/linux/vfs_compat.h | 14 | ||||
-rw-r--r-- | include/sys/trace_acl.h | 6 |
2 files changed, 16 insertions, 4 deletions
diff --git a/include/linux/vfs_compat.h b/include/linux/vfs_compat.h index 6111f0afc..f51ff887d 100644 --- a/include/linux/vfs_compat.h +++ b/include/linux/vfs_compat.h @@ -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 */ diff --git a/include/sys/trace_acl.h b/include/sys/trace_acl.h index 1057e560b..610bbe29c 100644 --- a/include/sys/trace_acl.h +++ b/include/sys/trace_acl.h @@ -68,7 +68,6 @@ DECLARE_EVENT_CLASS(zfs_ace_class, __field(uint32_t, i_gid) __field(unsigned long, i_ino) __field(unsigned int, i_nlink) - __field(u64, i_version) __field(loff_t, i_size) __field(unsigned int, i_blkbits) __field(unsigned short, i_bytes) @@ -103,7 +102,6 @@ DECLARE_EVENT_CLASS(zfs_ace_class, __entry->i_gid = KGID_TO_SGID(ZTOI(zn)->i_gid); __entry->i_ino = zn->z_inode.i_ino; __entry->i_nlink = zn->z_inode.i_nlink; - __entry->i_version = zn->z_inode.i_version; __entry->i_size = zn->z_inode.i_size; __entry->i_blkbits = zn->z_inode.i_blkbits; __entry->i_bytes = zn->z_inode.i_bytes; @@ -121,7 +119,7 @@ DECLARE_EVENT_CLASS(zfs_ace_class, "mapcnt %llu size %llu pflags %llu " "sync_cnt %u mode 0x%x is_sa %d " "is_mapped %d is_ctldir %d is_stale %d inode { " - "uid %u gid %u ino %lu nlink %u version %llu size %lli " + "uid %u gid %u ino %lu nlink %u size %lli " "blkbits %u bytes %u mode 0x%x generation %x } } " "ace { type %u flags %u access_mask %u } mask_matched %u", __entry->z_id, __entry->z_unlinked, __entry->z_atime_dirty, @@ -131,7 +129,7 @@ DECLARE_EVENT_CLASS(zfs_ace_class, __entry->z_is_sa, __entry->z_is_mapped, __entry->z_is_ctldir, __entry->z_is_stale, __entry->i_uid, __entry->i_gid, __entry->i_ino, __entry->i_nlink, - __entry->i_version, __entry->i_size, __entry->i_blkbits, + __entry->i_size, __entry->i_blkbits, __entry->i_bytes, __entry->i_mode, __entry->i_generation, __entry->z_type, __entry->z_flags, __entry->z_access_mask, __entry->mask_matched) |