XFS AG disk layout described on official doc is wrong
Dave Chinner
david at fromorbit.com
Fri Nov 9 01:36:54 CST 2012
On Fri, Nov 09, 2012 at 02:47:41PM +0800, Jeff Liu wrote:
> Hello,
>
> I observed that there is an issue on our official DOC for AG disk
> layout, which can be found at:
> http://xfs.org/docs/xfsdocs-xml-dev/XFS_Filesystem_Structure//tmp/en-US/html/Allocation_Groups.html
>
> It shows that the IBT block is followed by the block where AGFL sector
> resides. However, it should be followed by the
> CNT block according to my debug, like below:
>
> -------------------------------
> superblock
> AG free block info
> AG inode B+tree info
> AG internal free list
> -------------------------------
> Root of free space B+tree
> B+tree key is block number
> -------------------------------
> Root of free space B+tree
> B+tree key is block count
> --------------------------------
> Root of inodes B+tree
> --------------------------------
>
> Maybe the DOC is old, or am I missing anything? If not, can we correct it?
The btree root blocks are dynamic. mkfs.xfs puts them in a fixed
place, just like growfs does, but the moment you split a root block,
it moves from that location. Hence the only way to reliably find the
root btree block is to look up the point in the AGF/AGI, and that's
what the document shows. IOWs, the ordering in the document is not
important - the linkage is - as the root blocks can end up
*anywhere* in the AG.
e.g:
$ sudo xfs_db -r -c "agf 0" -c p /dev/vda
magicnum = 0x58414746
versionnum = 1
seqno = 0
length = 262144
bnoroot = 596
cntroot = 1003
bnolevel = 2
cntlevel = 2
....
Cheers,
Dave.
--
Dave Chinner
david at fromorbit.com
More information about the xfs
mailing list