--- /dev/null
+Index: linux-4.18.0-32.el8.x86_64/fs/ext4/ialloc.c
+===================================================================
+--- linux-4.18.0-32.el8.x86_64.orig/fs/ext4/ialloc.c
++++ linux-4.18.0-32.el8.x86_64/fs/ext4/ialloc.c
+@@ -1100,6 +1100,7 @@ got:
+ ei->i_dtime = 0;
+ ei->i_block_group = group;
+ ei->i_last_alloc_group = ~0;
++ ei->i_fs_version = 0;
+
+ ext4_set_inode_flags(inode);
+ if (IS_DIRSYNC(inode))
+Index: linux-4.18.0-32.el8.x86_64/fs/ext4/ext4.h
+===================================================================
+--- linux-4.18.0-32.el8.x86_64.orig/fs/ext4/ext4.h
++++ linux-4.18.0-32.el8.x86_64/fs/ext4/ext4.h
+@@ -1058,6 +1058,8 @@ struct ext4_inode_info {
+ struct dquot *i_dquot[MAXQUOTAS];
+ #endif
+
++ __u64 i_fs_version;
++
+ /* Precomputed uuid+inum+igen checksum for seeding inode checksums */
+ __u32 i_csum_seed;
+
+Index: linux-4.18.0-147.0.3.el8.x86_64/fs/ext4/inode.c
+===================================================================
+--- linux-4.18.0-147.0.3.el8.x86_64.orig/fs/ext4/inode.c
++++ linux-4.18.0-147.0.3.el8.x86_64/fs/ext4/inode.c
+@@ -4800,14 +4800,14 @@ static inline void ext4_inode_set_iversi
+ if (unlikely(EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL))
+ inode_set_iversion_raw(inode, val);
+ else
+- inode_set_iversion_queried(inode, val);
++ EXT4_I(inode)->i_fs_version = val;
+ }
+ static inline u64 ext4_inode_peek_iversion(const struct inode *inode)
+ {
+ if (unlikely(EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL))
+ return inode_peek_iversion_raw(inode);
+ else
+- return inode_peek_iversion(inode);
++ return EXT4_I(inode)->i_fs_version;
+ }
+
+ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,