1 Index: linux-stage/fs/ext4/inode.c
2 ===================================================================
3 --- linux-stage.orig/fs/ext4/inode.c
4 +++ linux-stage/fs/ext4/inode.c
5 @@ -4549,10 +4549,10 @@ struct inode *ext4_iget(struct super_blo
6 EXT4_EINODE_GET_XTIME(i_crtime, ei, raw_inode);
8 if (likely(!test_opt2(inode->i_sb, HURD_COMPAT))) {
9 - inode->i_version = le32_to_cpu(raw_inode->i_disk_version);
10 + ei->i_fs_version = le32_to_cpu(raw_inode->i_disk_version);
11 if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE) {
12 if (EXT4_FITS_IN_INODE(raw_inode, ei, i_version_hi))
15 (__u64)(le32_to_cpu(raw_inode->i_version_hi)) << 32;
18 @@ -4837,11 +4837,11 @@ static int ext4_do_update_inode(handle_t
21 if (likely(!test_opt2(inode->i_sb, HURD_COMPAT))) {
22 - raw_inode->i_disk_version = cpu_to_le32(inode->i_version);
23 + raw_inode->i_disk_version = cpu_to_le32(ei->i_fs_version);
24 if (ei->i_extra_isize) {
25 if (EXT4_FITS_IN_INODE(raw_inode, ei, i_version_hi))
26 raw_inode->i_version_hi =
27 - cpu_to_le32(inode->i_version >> 32);
28 + cpu_to_le32(ei->i_fs_version >> 32);
29 raw_inode->i_extra_isize =
30 cpu_to_le16(ei->i_extra_isize);
32 Index: linux-stage/fs/ext4/ialloc.c
33 ===================================================================
34 --- linux-stage.orig/fs/ext4/ialloc.c
35 +++ linux-stage/fs/ext4/ialloc.c
36 @@ -1045,6 +1045,7 @@ got:
38 ei->i_block_group = group;
39 ei->i_last_alloc_group = ~0;
40 + ei->i_fs_version = 0;
42 ext4_set_inode_flags(inode);
43 if (IS_DIRSYNC(inode))
44 Index: linux-stage/fs/ext4/ext4.h
45 ===================================================================
46 --- linux-stage.orig/fs/ext4/ext4.h
47 +++ linux-stage/fs/ext4/ext4.h
48 @@ -1022,6 +1022,8 @@ struct ext4_inode_info {
49 struct dquot *i_dquot[MAXQUOTAS];
54 /* Precomputed uuid+inum+igen checksum for seeding inode checksums */