|
@@ -237,6 +237,7 @@ xfs_inode_from_disk(
|
|
inode->i_mtime.tv_nsec = (int)be32_to_cpu(from->di_mtime.t_nsec);
|
|
inode->i_mtime.tv_nsec = (int)be32_to_cpu(from->di_mtime.t_nsec);
|
|
inode->i_ctime.tv_sec = (int)be32_to_cpu(from->di_ctime.t_sec);
|
|
inode->i_ctime.tv_sec = (int)be32_to_cpu(from->di_ctime.t_sec);
|
|
inode->i_ctime.tv_nsec = (int)be32_to_cpu(from->di_ctime.t_nsec);
|
|
inode->i_ctime.tv_nsec = (int)be32_to_cpu(from->di_ctime.t_nsec);
|
|
|
|
+ inode->i_generation = be32_to_cpu(from->di_gen);
|
|
|
|
|
|
to->di_size = be64_to_cpu(from->di_size);
|
|
to->di_size = be64_to_cpu(from->di_size);
|
|
to->di_nblocks = be64_to_cpu(from->di_nblocks);
|
|
to->di_nblocks = be64_to_cpu(from->di_nblocks);
|
|
@@ -248,7 +249,6 @@ xfs_inode_from_disk(
|
|
to->di_dmevmask = be32_to_cpu(from->di_dmevmask);
|
|
to->di_dmevmask = be32_to_cpu(from->di_dmevmask);
|
|
to->di_dmstate = be16_to_cpu(from->di_dmstate);
|
|
to->di_dmstate = be16_to_cpu(from->di_dmstate);
|
|
to->di_flags = be16_to_cpu(from->di_flags);
|
|
to->di_flags = be16_to_cpu(from->di_flags);
|
|
- to->di_gen = be32_to_cpu(from->di_gen);
|
|
|
|
|
|
|
|
if (to->di_version == 3) {
|
|
if (to->di_version == 3) {
|
|
to->di_changecount = be64_to_cpu(from->di_changecount);
|
|
to->di_changecount = be64_to_cpu(from->di_changecount);
|
|
@@ -286,6 +286,7 @@ xfs_inode_to_disk(
|
|
to->di_ctime.t_sec = cpu_to_be32(inode->i_ctime.tv_sec);
|
|
to->di_ctime.t_sec = cpu_to_be32(inode->i_ctime.tv_sec);
|
|
to->di_ctime.t_nsec = cpu_to_be32(inode->i_ctime.tv_nsec);
|
|
to->di_ctime.t_nsec = cpu_to_be32(inode->i_ctime.tv_nsec);
|
|
to->di_nlink = cpu_to_be32(inode->i_nlink);
|
|
to->di_nlink = cpu_to_be32(inode->i_nlink);
|
|
|
|
+ to->di_gen = cpu_to_be32(inode->i_generation);
|
|
|
|
|
|
to->di_size = cpu_to_be64(from->di_size);
|
|
to->di_size = cpu_to_be64(from->di_size);
|
|
to->di_nblocks = cpu_to_be64(from->di_nblocks);
|
|
to->di_nblocks = cpu_to_be64(from->di_nblocks);
|
|
@@ -297,7 +298,6 @@ xfs_inode_to_disk(
|
|
to->di_dmevmask = cpu_to_be32(from->di_dmevmask);
|
|
to->di_dmevmask = cpu_to_be32(from->di_dmevmask);
|
|
to->di_dmstate = cpu_to_be16(from->di_dmstate);
|
|
to->di_dmstate = cpu_to_be16(from->di_dmstate);
|
|
to->di_flags = cpu_to_be16(from->di_flags);
|
|
to->di_flags = cpu_to_be16(from->di_flags);
|
|
- to->di_gen = cpu_to_be32(from->di_gen);
|
|
|
|
|
|
|
|
if (from->di_version == 3) {
|
|
if (from->di_version == 3) {
|
|
to->di_changecount = cpu_to_be64(from->di_changecount);
|
|
to->di_changecount = cpu_to_be64(from->di_changecount);
|
|
@@ -443,7 +443,7 @@ xfs_iread(
|
|
!(mp->m_flags & XFS_MOUNT_IKEEP)) {
|
|
!(mp->m_flags & XFS_MOUNT_IKEEP)) {
|
|
/* initialise the on-disk inode core */
|
|
/* initialise the on-disk inode core */
|
|
memset(&ip->i_d, 0, sizeof(ip->i_d));
|
|
memset(&ip->i_d, 0, sizeof(ip->i_d));
|
|
- ip->i_d.di_gen = prandom_u32();
|
|
|
|
|
|
+ VFS_I(ip)->i_generation = prandom_u32();
|
|
if (xfs_sb_version_hascrc(&mp->m_sb))
|
|
if (xfs_sb_version_hascrc(&mp->m_sb))
|
|
ip->i_d.di_version = 3;
|
|
ip->i_d.di_version = 3;
|
|
else
|
|
else
|
|
@@ -491,7 +491,7 @@ xfs_iread(
|
|
* that xfs_ialloc won't overwrite or relies on being correct.
|
|
* that xfs_ialloc won't overwrite or relies on being correct.
|
|
*/
|
|
*/
|
|
ip->i_d.di_version = dip->di_version;
|
|
ip->i_d.di_version = dip->di_version;
|
|
- ip->i_d.di_gen = be32_to_cpu(dip->di_gen);
|
|
|
|
|
|
+ VFS_I(ip)->i_generation = be32_to_cpu(dip->di_gen);
|
|
ip->i_d.di_flushiter = be16_to_cpu(dip->di_flushiter);
|
|
ip->i_d.di_flushiter = be16_to_cpu(dip->di_flushiter);
|
|
|
|
|
|
/*
|
|
/*
|