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,