From: Darrick J. Wong <djwong@xxxxxxxxxx> Update the ondisk format documentation to discuss the inode btree counter feature. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- .../allocation_groups.asciidoc | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/design/XFS_Filesystem_Structure/allocation_groups.asciidoc b/design/XFS_Filesystem_Structure/allocation_groups.asciidoc index 992615d..2e78f56 100644 --- a/design/XFS_Filesystem_Structure/allocation_groups.asciidoc +++ b/design/XFS_Filesystem_Structure/allocation_groups.asciidoc @@ -405,6 +405,13 @@ reference counts of AG blocks. This enables files to share data blocks safely. See the section about xref:Reflink_Deduplication[reflink and deduplication] for more details. +| +XFS_SB_FEAT_RO_COMPAT_INOBTCNT+ | +Inode B+tree block counters. Each allocation group's inode (AGI) header +tracks the number of blocks in each of the inode B+trees. This allows us +to have a slightly higher level of redundancy over the shape of the inode +btrees, and decreases the amount of time to compute the metadata B+tree +preallocations at mount time. + |===== *sb_features_incompat*:: @@ -928,6 +935,10 @@ struct xfs_agi { __be32 agi_free_root; __be32 agi_free_level; + + __be32 agi_iblocks; + __be32 agi_fblocks; + } ---- *agi_magicnum*:: @@ -984,6 +995,16 @@ B+tree. *agi_free_level*:: Specifies the number of levels in the free inode B+tree. +*agi_iblocks*:: +The number of blocks in the inode B+tree, including the root. +This field is zero if the +XFS_SB_FEAT_RO_COMPAT_INOBTCNT+ feature is not +enabled. + +*agi_fblocks*:: +The number of blocks in the free inode B+tree, including the root. +This field is zero if the +XFS_SB_FEAT_RO_COMPAT_INOBTCNT+ feature is not +enabled. + [[Inode_Btrees]] == Inode B+trees