Viewing: ext4-inode-version.patch
commit 3675818845f2a4713348c363eb78f696753ad24e
Author: Girish Shilamkar <girish@clusterfs.com>
AuthorDate: Thu May 22 17:01:56 2008 +0000
Fix ext3 inode version field being filled with 0x5a5a5a5a on disk.
Declare our own in-core i_fs_version to hold the Lustre transno.
Bugzilla-ID: b=15604
Signed-off-by: Girish Shilamkar <girish@clusterfs.com>
Reviewed-by: Andreas Dilger <adilger@clusterfs.com>
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index bbe69446..bdd72d46 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1166,6 +1166,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;
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index 745d781d..29532f05 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -1268,6 +1268,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, true);
if (IS_DIRSYNC(inode))
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 7415f7f7..8fa8757e 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4582,14 +4582,14 @@ static inline void ext4_inode_set_iversion_queried(struct inode *inode, u64 val)
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;
}
static const char *check_igot_inode(struct inode *inode, ext4_iget_flags flags)
--
2.25.1