Whamcloud - gitweb
LU-12637 kernel: RHEL 8.1 server support
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / rhel8.1 / ext4-inode-version.patch
diff --git a/ldiskfs/kernel_patches/patches/rhel8.1/ext4-inode-version.patch b/ldiskfs/kernel_patches/patches/rhel8.1/ext4-inode-version.patch
new file mode 100644 (file)
index 0000000..0b06e7c
--- /dev/null
@@ -0,0 +1,46 @@
+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,