#include "xfs_ialloc.h"
 #include "xfs_dir2.h"
 
+#include <linux/iversion.h>
+
 /*
  * Check that none of the inode's in the buffer have a next
  * unlinked field of 0.
        to->di_flags    = be16_to_cpu(from->di_flags);
 
        if (to->di_version == 3) {
-               inode->i_version = be64_to_cpu(from->di_changecount);
+               inode_set_iversion_queried(inode,
+                                          be64_to_cpu(from->di_changecount));
                to->di_crtime.t_sec = be32_to_cpu(from->di_crtime.t_sec);
                to->di_crtime.t_nsec = be32_to_cpu(from->di_crtime.t_nsec);
                to->di_flags2 = be64_to_cpu(from->di_flags2);
        to->di_flags = cpu_to_be16(from->di_flags);
 
        if (from->di_version == 3) {
-               to->di_changecount = cpu_to_be64(inode->i_version);
+               to->di_changecount = cpu_to_be64(inode_peek_iversion(inode));
                to->di_crtime.t_sec = cpu_to_be32(from->di_crtime.t_sec);
                to->di_crtime.t_nsec = cpu_to_be32(from->di_crtime.t_nsec);
                to->di_flags2 = cpu_to_be64(from->di_flags2);
 
 
 #include <linux/kthread.h>
 #include <linux/freezer.h>
+#include <linux/iversion.h>
 
 /*
  * Allocate and initialise an xfs_inode.
        int             error;
        uint32_t        nlink = inode->i_nlink;
        uint32_t        generation = inode->i_generation;
-       uint64_t        version = inode->i_version;
+       uint64_t        version = inode_peek_iversion(inode);
        umode_t         mode = inode->i_mode;
 
        error = inode_init_always(mp->m_super, inode);
 
        set_nlink(inode, nlink);
        inode->i_generation = generation;
-       inode->i_version = version;
+       inode_set_iversion_queried(inode, version);
        inode->i_mode = mode;
        return error;
 }
 
  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/log2.h>
+#include <linux/iversion.h>
 
 #include "xfs.h"
 #include "xfs_fs.h"
        ip->i_d.di_flags = 0;
 
        if (ip->i_d.di_version == 3) {
-               inode->i_version = 1;
+               inode_set_iversion(inode, 1);
                ip->i_d.di_flags2 = 0;
                ip->i_d.di_cowextsize = 0;
                ip->i_d.di_crtime.t_sec = (int32_t)tv.tv_sec;
 
 #include "xfs_buf_item.h"
 #include "xfs_log.h"
 
+#include <linux/iversion.h>
 
 kmem_zone_t    *xfs_ili_zone;          /* inode log item zone */
 
        to->di_next_unlinked = NULLAGINO;
 
        if (from->di_version == 3) {
-               to->di_changecount = inode->i_version;
+               to->di_changecount = inode_peek_iversion(inode);
                to->di_crtime.t_sec = from->di_crtime.t_sec;
                to->di_crtime.t_nsec = from->di_crtime.t_nsec;
                to->di_flags2 = from->di_flags2;
 
 #include "xfs_inode_item.h"
 #include "xfs_trace.h"
 
+#include <linux/iversion.h>
+
 /*
  * Add a locked inode to the transaction.
  *
         */
        if (!(ip->i_itemp->ili_item.li_desc->lid_flags & XFS_LID_DIRTY) &&
            IS_I_VERSION(VFS_I(ip))) {
-               VFS_I(ip)->i_version++;
+               inode_inc_iversion(VFS_I(ip));
                flags |= XFS_ILOG_CORE;
        }