Whamcloud - gitweb
LU-6722 ldiskfs: fix credits at ldiskfs_delete_inode
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / rhel6.3 / ext4-inode-version.patch
1 Index: linux-2.6.32-el6-beta/fs/ext4/inode.c
2 ===================================================================
3 --- linux-2.6.32-el6-beta.orig/fs/ext4/inode.c
4 +++ linux-2.6.32-el6-beta/fs/ext4/inode.c
5 @@ -4920,11 +4920,11 @@ struct inode *ext4_iget(struct super_blo
6         EXT4_INODE_GET_XTIME(i_atime, inode, raw_inode);
7         EXT4_EINODE_GET_XTIME(i_crtime, ei, raw_inode);
8  
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))
13 -                       inode->i_version |=
14 -                       (__u64)(le32_to_cpu(raw_inode->i_version_hi)) << 32;
15 +                       ei->i_fs_version |= (__u64)(le32_to_cpu(raw_inode->i_version_hi))
16 +                                                                        << 32;
17         }
18  
19         ret = 0;
20 @@ -5134,11 +5134,11 @@ static int ext4_do_update_inode(handle_t
21                 for (block = 0; block < EXT4_N_BLOCKS; block++)
22                         raw_inode->i_block[block] = ei->i_data[block];
23  
24 -       raw_inode->i_disk_version = cpu_to_le32(inode->i_version);
25 +       raw_inode->i_disk_version = cpu_to_le32(ei->i_fs_version);
26         if (ei->i_extra_isize) {
27                 if (EXT4_FITS_IN_INODE(raw_inode, ei, i_version_hi))
28 -                       raw_inode->i_version_hi =
29 -                       cpu_to_le32(inode->i_version >> 32);
30 +                       raw_inode->i_version_hi = cpu_to_le32(ei->i_fs_version
31 +                                                             >> 32);
32                 raw_inode->i_extra_isize = cpu_to_le16(ei->i_extra_isize);
33         }
34  
35 Index: linux-2.6.32-el6-beta/fs/ext4/ialloc.c
36 ===================================================================
37 --- linux-2.6.32-el6-beta.orig/fs/ext4/ialloc.c
38 +++ linux-2.6.32-el6-beta/fs/ext4/ialloc.c
39 @@ -1018,6 +1018,7 @@ got:
40         ei->i_dtime = 0;
41         ei->i_block_group = group;
42         ei->i_last_alloc_group = ~0;
43 +       ei->i_fs_version = 0;
44  
45         ext4_set_inode_flags(inode);
46         if (IS_DIRSYNC(inode))
47 Index: linux-2.6.32-el6-beta/fs/ext4/ext4.h
48 ===================================================================
49 --- linux-2.6.32-el6-beta.orig/fs/ext4/ext4.h
50 +++ linux-2.6.32-el6-beta/fs/ext4/ext4.h
51 @@ -714,8 +714,12 @@ struct ext4_inode_info {
52          */
53         tid_t i_sync_tid;
54         tid_t i_datasync_tid;
55 +
56 +       __u64 i_fs_version;
57  };
58  
59 +#define HAVE_DISK_INODE_VERSION
60 +
61  /*
62   * File system states
63   */