[PATCH V4 14/20] xfsprogs: Conditionally upgrade existing inodes to use 64-bit extent counters

Chandan Babu R
2021-12-14T08:50:12Z

This commit upgrades inodes to use 64-bit extent counters when they are read
from disk. Inodes are upgraded only when the filesystem instance has
XFS_SB_FEAT_INCOMPAT_NREXT64 incompat flag set.

Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
---
libxfs/xfs_inode_buf.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c
index 5c6de73b..a484e14b 100644
--- a/libxfs/xfs_inode_buf.c
+++ b/libxfs/xfs_inode_buf.c
@@ -250,6 +250,12 @@ xfs_inode_from_disk(
}
if (xfs_is_reflink_inode(ip))
xfs_ifork_init_cow(ip);
+
+ if ((from->di_version == 3) &&
+ xfs_sb_version_hasnrext64(&ip->i_mount->m_sb) &&
+ !xfs_dinode_has_nrext64(from))
+ ip->i_diflags2 |= XFS_DIFLAG2_NREXT64;
+
return 0;

out_destroy_data_fork:
--
2.30.2