From 28549f676e040c96bfae575535dea7e0ecdf0f41 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 11 Feb 2023 22:15:41 -0700 Subject: Change how constants are declared to play nice with godoc Switch to NAME Type = val instead of NAME = Type(val) --- lib/btrfs/btrfsprim/itemtype.go | 64 ++++++++++++++++++++--------------------- lib/btrfs/btrfsprim/objid.go | 56 ++++++++++++++++++------------------ 2 files changed, 60 insertions(+), 60 deletions(-) (limited to 'lib/btrfs/btrfsprim') diff --git a/lib/btrfs/btrfsprim/itemtype.go b/lib/btrfs/btrfsprim/itemtype.go index 0b6baee..dba7ced 100644 --- a/lib/btrfs/btrfsprim/itemtype.go +++ b/lib/btrfs/btrfsprim/itemtype.go @@ -7,38 +7,38 @@ import "fmt" type ItemType uint8 const ( - BLOCK_GROUP_ITEM_KEY = ItemType(192) - CHUNK_ITEM_KEY = ItemType(228) - DEV_EXTENT_KEY = ItemType(204) - DEV_ITEM_KEY = ItemType(216) - DIR_INDEX_KEY = ItemType(96) - DIR_ITEM_KEY = ItemType(84) - EXTENT_CSUM_KEY = ItemType(128) - EXTENT_DATA_KEY = ItemType(108) - EXTENT_DATA_REF_KEY = ItemType(178) - EXTENT_ITEM_KEY = ItemType(168) - FREE_SPACE_BITMAP_KEY = ItemType(200) - FREE_SPACE_EXTENT_KEY = ItemType(199) - FREE_SPACE_INFO_KEY = ItemType(198) - INODE_ITEM_KEY = ItemType(1) - INODE_REF_KEY = ItemType(12) - METADATA_ITEM_KEY = ItemType(169) - ORPHAN_ITEM_KEY = ItemType(48) - PERSISTENT_ITEM_KEY = ItemType(249) - QGROUP_INFO_KEY = ItemType(242) - QGROUP_LIMIT_KEY = ItemType(244) - QGROUP_RELATION_KEY = ItemType(246) - QGROUP_STATUS_KEY = ItemType(240) - ROOT_BACKREF_KEY = ItemType(144) - ROOT_ITEM_KEY = ItemType(132) - ROOT_REF_KEY = ItemType(156) - SHARED_BLOCK_REF_KEY = ItemType(182) - SHARED_DATA_REF_KEY = ItemType(184) - TREE_BLOCK_REF_KEY = ItemType(176) - UNTYPED_KEY = ItemType(0) - UUID_RECEIVED_SUBVOL_KEY = ItemType(252) - UUID_SUBVOL_KEY = ItemType(251) - XATTR_ITEM_KEY = ItemType(24) + BLOCK_GROUP_ITEM_KEY ItemType = 192 + CHUNK_ITEM_KEY ItemType = 228 + DEV_EXTENT_KEY ItemType = 204 + DEV_ITEM_KEY ItemType = 216 + DIR_INDEX_KEY ItemType = 96 + DIR_ITEM_KEY ItemType = 84 + EXTENT_CSUM_KEY ItemType = 128 + EXTENT_DATA_KEY ItemType = 108 + EXTENT_DATA_REF_KEY ItemType = 178 + EXTENT_ITEM_KEY ItemType = 168 + FREE_SPACE_BITMAP_KEY ItemType = 200 + FREE_SPACE_EXTENT_KEY ItemType = 199 + FREE_SPACE_INFO_KEY ItemType = 198 + INODE_ITEM_KEY ItemType = 1 + INODE_REF_KEY ItemType = 12 + METADATA_ITEM_KEY ItemType = 169 + ORPHAN_ITEM_KEY ItemType = 48 + PERSISTENT_ITEM_KEY ItemType = 249 + QGROUP_INFO_KEY ItemType = 242 + QGROUP_LIMIT_KEY ItemType = 244 + QGROUP_RELATION_KEY ItemType = 246 + QGROUP_STATUS_KEY ItemType = 240 + ROOT_BACKREF_KEY ItemType = 144 + ROOT_ITEM_KEY ItemType = 132 + ROOT_REF_KEY ItemType = 156 + SHARED_BLOCK_REF_KEY ItemType = 182 + SHARED_DATA_REF_KEY ItemType = 184 + TREE_BLOCK_REF_KEY ItemType = 176 + UNTYPED_KEY ItemType = 0 + UUID_RECEIVED_SUBVOL_KEY ItemType = 252 + UUID_SUBVOL_KEY ItemType = 251 + XATTR_ITEM_KEY ItemType = 24 ) func (t ItemType) String() string { diff --git a/lib/btrfs/btrfsprim/objid.go b/lib/btrfs/btrfsprim/objid.go index 8ad290b..5896030 100644 --- a/lib/btrfs/btrfsprim/objid.go +++ b/lib/btrfs/btrfsprim/objid.go @@ -14,45 +14,45 @@ const maxUint64pp = 0x1_00000000_00000000 const ( // The IDs of the various trees - ROOT_TREE_OBJECTID = ObjID(1) // holds pointers to all of the tree roots - EXTENT_TREE_OBJECTID = ObjID(2) // stores information about which extents are in use, and reference counts - CHUNK_TREE_OBJECTID = ObjID(3) // chunk tree stores translations from logical -> physical block numbering - DEV_TREE_OBJECTID = ObjID(4) // stores info about which areas of a given device are in use; one per device - FS_TREE_OBJECTID = ObjID(5) // one per subvolume, storing files and directories - ROOT_TREE_DIR_OBJECTID = ObjID(6) // directory objectid inside the root tree - CSUM_TREE_OBJECTID = ObjID(7) // holds checksums of all the data extents - QUOTA_TREE_OBJECTID = ObjID(8) - UUID_TREE_OBJECTID = ObjID(9) // for storing items that use the UUID_*_KEY - FREE_SPACE_TREE_OBJECTID = ObjID(10) // tracks free space in block groups. - BLOCK_GROUP_TREE_OBJECTID = ObjID(11) // hold the block group items. + ROOT_TREE_OBJECTID ObjID = 1 // holds pointers to all of the tree roots + EXTENT_TREE_OBJECTID ObjID = 2 // stores information about which extents are in use, and reference counts + CHUNK_TREE_OBJECTID ObjID = 3 // chunk tree stores translations from logical -> physical block numbering + DEV_TREE_OBJECTID ObjID = 4 // stores info about which areas of a given device are in use; one per device + FS_TREE_OBJECTID ObjID = 5 // one per subvolume, storing files and directories + ROOT_TREE_DIR_OBJECTID ObjID = 6 // directory objectid inside the root tree + CSUM_TREE_OBJECTID ObjID = 7 // holds checksums of all the data extents + QUOTA_TREE_OBJECTID ObjID = 8 + UUID_TREE_OBJECTID ObjID = 9 // for storing items that use the UUID_*_KEY + FREE_SPACE_TREE_OBJECTID ObjID = 10 // tracks free space in block groups. + BLOCK_GROUP_TREE_OBJECTID ObjID = 11 // hold the block group items. // Objects in the DEV_TREE - DEV_STATS_OBJECTID = ObjID(0) // device stats in the device tree + DEV_STATS_OBJECTID ObjID = 0 // device stats in the device tree // ??? - BALANCE_OBJECTID = ObjID(maxUint64pp - 4) // for storing balance parameters in the root tree - ORPHAN_OBJECTID = ObjID(maxUint64pp - 5) // orphan objectid for tracking unlinked/truncated files - TREE_LOG_OBJECTID = ObjID(maxUint64pp - 6) // does write ahead logging to speed up fsyncs - TREE_LOG_FIXUP_OBJECTID = ObjID(maxUint64pp - 7) - TREE_RELOC_OBJECTID = ObjID(maxUint64pp - 8) // space balancing - DATA_RELOC_TREE_OBJECTID = ObjID(maxUint64pp - 9) - EXTENT_CSUM_OBJECTID = ObjID(maxUint64pp - 10) // extent checksums all have this objectid - FREE_SPACE_OBJECTID = ObjID(maxUint64pp - 11) // For storing free space cache - FREE_INO_OBJECTID = ObjID(maxUint64pp - 12) // stores the inode number for the free-ino cache - - MULTIPLE_OBJECTIDS = ObjID(maxUint64pp - 255) // dummy objectid represents multiple objectids + BALANCE_OBJECTID ObjID = maxUint64pp - 4 // for storing balance parameters in the root tree + ORPHAN_OBJECTID ObjID = maxUint64pp - 5 // orphan objectid for tracking unlinked/truncated files + TREE_LOG_OBJECTID ObjID = maxUint64pp - 6 // does write ahead logging to speed up fsyncs + TREE_LOG_FIXUP_OBJECTID ObjID = maxUint64pp - 7 + TREE_RELOC_OBJECTID ObjID = maxUint64pp - 8 // space balancing + DATA_RELOC_TREE_OBJECTID ObjID = maxUint64pp - 9 + EXTENT_CSUM_OBJECTID ObjID = maxUint64pp - 10 // extent checksums all have this objectid + FREE_SPACE_OBJECTID ObjID = maxUint64pp - 11 // For storing free space cache + FREE_INO_OBJECTID ObjID = maxUint64pp - 12 // stores the inode number for the free-ino cache + + MULTIPLE_OBJECTIDS ObjID = maxUint64pp - 255 // dummy objectid represents multiple objectids // All files have objectids in this range. - FIRST_FREE_OBJECTID = ObjID(256) - LAST_FREE_OBJECTID = ObjID(maxUint64pp - 256) + FIRST_FREE_OBJECTID ObjID = 256 + LAST_FREE_OBJECTID ObjID = maxUint64pp - 256 - FIRST_CHUNK_TREE_OBJECTID = ObjID(256) + FIRST_CHUNK_TREE_OBJECTID ObjID = 256 // Objects in the CHUNK_TREE - DEV_ITEMS_OBJECTID = ObjID(1) + DEV_ITEMS_OBJECTID ObjID = 1 // ??? - EMPTY_SUBVOL_DIR_OBJECTID = ObjID(2) + EMPTY_SUBVOL_DIR_OBJECTID ObjID = 2 ) func (id ObjID) Format(typ ItemType) string { -- cgit v1.2.3-2-g168b From 1f3a1a474ac41f427e4c5b0d27d2c85a3cfaa65e Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 11 Feb 2023 22:40:40 -0700 Subject: btrfsprim: Have ObjID.Format() take the tree ID, not the item type --- lib/btrfs/btrfsprim/misc.go | 29 ++++++++++++++++++++++++++++- lib/btrfs/btrfsprim/objid.go | 44 +++++++++++++------------------------------- 2 files changed, 41 insertions(+), 32 deletions(-) (limited to 'lib/btrfs/btrfsprim') diff --git a/lib/btrfs/btrfsprim/misc.go b/lib/btrfs/btrfsprim/misc.go index da661f6..ca2e313 100644 --- a/lib/btrfs/btrfsprim/misc.go +++ b/lib/btrfs/btrfsprim/misc.go @@ -22,8 +22,35 @@ type Key struct { binstruct.End `bin:"off=0x11"` } +// mimics print-tree.c:btrfs_print_key() +func (key Key) Format(tree ObjID) string { + switch tree { + case UUID_TREE_OBJECTID: + return fmt.Sprintf("(%v %v %#08x)", + key.ObjectID.Format(tree), + key.ItemType, + key.Offset) + case ROOT_TREE_OBJECTID, QUOTA_TREE_OBJECTID: + return fmt.Sprintf("(%v %v %v)", + key.ObjectID.Format(tree), + key.ItemType, + ObjID(key.Offset).Format(tree)) + default: + if key.Offset == math.MaxUint64 { + return fmt.Sprintf("(%v %v -1)", + key.ObjectID.Format(tree), + key.ItemType) + } else { + return fmt.Sprintf("(%v %v %v)", + key.ObjectID.Format(tree), + key.ItemType, + key.Offset) + } + } +} + func (key Key) String() string { - return fmt.Sprintf("{%v %v %v}", key.ObjectID, key.ItemType, key.Offset) + return key.Format(0) } var MaxKey = Key{ diff --git a/lib/btrfs/btrfsprim/objid.go b/lib/btrfs/btrfsprim/objid.go index 5896030..8ca1fbb 100644 --- a/lib/btrfs/btrfsprim/objid.go +++ b/lib/btrfs/btrfsprim/objid.go @@ -46,18 +46,17 @@ const ( FIRST_FREE_OBJECTID ObjID = 256 LAST_FREE_OBJECTID ObjID = maxUint64pp - 256 - FIRST_CHUNK_TREE_OBJECTID ObjID = 256 - // Objects in the CHUNK_TREE - DEV_ITEMS_OBJECTID ObjID = 1 + DEV_ITEMS_OBJECTID ObjID = 1 + FIRST_CHUNK_TREE_OBJECTID ObjID = 256 // ??? EMPTY_SUBVOL_DIR_OBJECTID ObjID = 2 ) -func (id ObjID) Format(typ ItemType) string { - switch typ { - case PERSISTENT_ITEM_KEY: +func (id ObjID) Format(tree ObjID) string { + switch tree { + case DEV_TREE_OBJECTID: names := map[ObjID]string{ DEV_STATS_OBJECTID: "DEV_STATS", } @@ -65,35 +64,17 @@ func (id ObjID) Format(typ ItemType) string { return name } return fmt.Sprintf("%d", int64(id)) - case DEV_EXTENT_KEY: - return fmt.Sprintf("%d", int64(id)) - case QGROUP_RELATION_KEY: + case QUOTA_TREE_OBJECTID: + if id == 0 { + return "0" + } //nolint:gomnd // The left 48 bits are the "qgroup level", and the right 16 bits are the subvolume ID. return fmt.Sprintf("%d/%d", uint64(id)>>48, uint64(id)&((1<<48)-1)) - case UUID_SUBVOL_KEY, UUID_RECEIVED_SUBVOL_KEY: + case UUID_TREE_OBJECTID: return fmt.Sprintf("%#016x", uint64(id)) - case DEV_ITEM_KEY: - names := map[ObjID]string{ - BALANCE_OBJECTID: "BALANCE", - ORPHAN_OBJECTID: "ORPHAN", - TREE_LOG_OBJECTID: "TREE_LOG", - TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP", - TREE_RELOC_OBJECTID: "TREE_RELOC", - DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE", - EXTENT_CSUM_OBJECTID: "EXTENT_CSUM", - FREE_SPACE_OBJECTID: "FREE_SPACE", - FREE_INO_OBJECTID: "FREE_INO", - MULTIPLE_OBJECTIDS: "MULTIPLE", - - DEV_ITEMS_OBJECTID: "DEV_ITEMS", - } - if name, ok := names[id]; ok { - return name - } - return fmt.Sprintf("%d", int64(id)) - case CHUNK_ITEM_KEY: + case CHUNK_TREE_OBJECTID: names := map[ObjID]string{ BALANCE_OBJECTID: "BALANCE", ORPHAN_OBJECTID: "ORPHAN", @@ -106,6 +87,7 @@ func (id ObjID) Format(typ ItemType) string { FREE_INO_OBJECTID: "FREE_INO", MULTIPLE_OBJECTIDS: "MULTIPLE", + DEV_ITEMS_OBJECTID: "DEV_ITEMS", FIRST_CHUNK_TREE_OBJECTID: "FIRST_CHUNK_TREE", } if name, ok := names[id]; ok { @@ -145,5 +127,5 @@ func (id ObjID) Format(typ ItemType) string { } func (id ObjID) String() string { - return id.Format(UNTYPED_KEY) + return id.Format(0) } -- cgit v1.2.3-2-g168b From acbbfafa07922b458506b91a58f3a082da453fd1 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 11 Feb 2023 22:33:44 -0700 Subject: Try to avoid unnecessary allocations in enum-types' String methods --- lib/btrfs/btrfsprim/itemtype.go | 104 ++++++++++++++++++++++++++-------------- lib/btrfs/btrfsprim/objid.go | 85 ++++++++++++++++---------------- 2 files changed, 109 insertions(+), 80 deletions(-) (limited to 'lib/btrfs/btrfsprim') diff --git a/lib/btrfs/btrfsprim/itemtype.go b/lib/btrfs/btrfsprim/itemtype.go index dba7ced..f33179a 100644 --- a/lib/btrfs/btrfsprim/itemtype.go +++ b/lib/btrfs/btrfsprim/itemtype.go @@ -42,42 +42,72 @@ const ( ) func (t ItemType) String() string { - names := map[ItemType]string{ - BLOCK_GROUP_ITEM_KEY: "BLOCK_GROUP_ITEM", - CHUNK_ITEM_KEY: "CHUNK_ITEM", - DEV_EXTENT_KEY: "DEV_EXTENT", - DEV_ITEM_KEY: "DEV_ITEM", - DIR_INDEX_KEY: "DIR_INDEX", - DIR_ITEM_KEY: "DIR_ITEM", - EXTENT_CSUM_KEY: "EXTENT_CSUM", - EXTENT_DATA_KEY: "EXTENT_DATA", - EXTENT_DATA_REF_KEY: "EXTENT_DATA_REF", - EXTENT_ITEM_KEY: "EXTENT_ITEM", - FREE_SPACE_BITMAP_KEY: "FREE_SPACE_BITMAP", - FREE_SPACE_EXTENT_KEY: "FREE_SPACE_EXTENT", - FREE_SPACE_INFO_KEY: "FREE_SPACE_INFO", - INODE_ITEM_KEY: "INODE_ITEM", - INODE_REF_KEY: "INODE_REF", - METADATA_ITEM_KEY: "METADATA_ITEM", - ORPHAN_ITEM_KEY: "ORPHAN_ITEM", - PERSISTENT_ITEM_KEY: "PERSISTENT_ITEM", - QGROUP_INFO_KEY: "QGROUP_INFO", - QGROUP_LIMIT_KEY: "QGROUP_LIMIT", - QGROUP_RELATION_KEY: "QGROUP_RELATION", - QGROUP_STATUS_KEY: "QGROUP_STATUS", - ROOT_BACKREF_KEY: "ROOT_BACKREF", - ROOT_ITEM_KEY: "ROOT_ITEM", - ROOT_REF_KEY: "ROOT_REF", - SHARED_BLOCK_REF_KEY: "SHARED_BLOCK_REF", - SHARED_DATA_REF_KEY: "SHARED_DATA_REF", - TREE_BLOCK_REF_KEY: "TREE_BLOCK_REF", - UNTYPED_KEY: "UNTYPED", - UUID_RECEIVED_SUBVOL_KEY: "UUID_KEY_RECEIVED_SUBVOL", - UUID_SUBVOL_KEY: "UUID_KEY_SUBVOL", - XATTR_ITEM_KEY: "XATTR_ITEM", + switch t { + case BLOCK_GROUP_ITEM_KEY: + return "BLOCK_GROUP_ITEM" + case CHUNK_ITEM_KEY: + return "CHUNK_ITEM" + case DEV_EXTENT_KEY: + return "DEV_EXTENT" + case DEV_ITEM_KEY: + return "DEV_ITEM" + case DIR_INDEX_KEY: + return "DIR_INDEX" + case DIR_ITEM_KEY: + return "DIR_ITEM" + case EXTENT_CSUM_KEY: + return "EXTENT_CSUM" + case EXTENT_DATA_KEY: + return "EXTENT_DATA" + case EXTENT_DATA_REF_KEY: + return "EXTENT_DATA_REF" + case EXTENT_ITEM_KEY: + return "EXTENT_ITEM" + case FREE_SPACE_BITMAP_KEY: + return "FREE_SPACE_BITMAP" + case FREE_SPACE_EXTENT_KEY: + return "FREE_SPACE_EXTENT" + case FREE_SPACE_INFO_KEY: + return "FREE_SPACE_INFO" + case INODE_ITEM_KEY: + return "INODE_ITEM" + case INODE_REF_KEY: + return "INODE_REF" + case METADATA_ITEM_KEY: + return "METADATA_ITEM" + case ORPHAN_ITEM_KEY: + return "ORPHAN_ITEM" + case PERSISTENT_ITEM_KEY: + return "PERSISTENT_ITEM" + case QGROUP_INFO_KEY: + return "QGROUP_INFO" + case QGROUP_LIMIT_KEY: + return "QGROUP_LIMIT" + case QGROUP_RELATION_KEY: + return "QGROUP_RELATION" + case QGROUP_STATUS_KEY: + return "QGROUP_STATUS" + case ROOT_BACKREF_KEY: + return "ROOT_BACKREF" + case ROOT_ITEM_KEY: + return "ROOT_ITEM" + case ROOT_REF_KEY: + return "ROOT_REF" + case SHARED_BLOCK_REF_KEY: + return "SHARED_BLOCK_REF" + case SHARED_DATA_REF_KEY: + return "SHARED_DATA_REF" + case TREE_BLOCK_REF_KEY: + return "TREE_BLOCK_REF" + case UNTYPED_KEY: + return "UNTYPED" + case UUID_RECEIVED_SUBVOL_KEY: + return "UUID_KEY_RECEIVED_SUBVOL" + case UUID_SUBVOL_KEY: + return "UUID_KEY_SUBVOL" + case XATTR_ITEM_KEY: + return "XATTR_ITEM" + default: + return fmt.Sprintf("%d", t) } - if name, ok := names[t]; ok { - return name - } - return fmt.Sprintf("%d", t) } diff --git a/lib/btrfs/btrfsprim/objid.go b/lib/btrfs/btrfsprim/objid.go index 8ca1fbb..1aea030 100644 --- a/lib/btrfs/btrfsprim/objid.go +++ b/lib/btrfs/btrfsprim/objid.go @@ -54,13 +54,45 @@ const ( EMPTY_SUBVOL_DIR_OBJECTID ObjID = 2 ) +var ( + objidCommonNames = map[ObjID]string{ + BALANCE_OBJECTID: "BALANCE", + ORPHAN_OBJECTID: "ORPHAN", + TREE_LOG_OBJECTID: "TREE_LOG", + TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP", + TREE_RELOC_OBJECTID: "TREE_RELOC", + DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE", + EXTENT_CSUM_OBJECTID: "EXTENT_CSUM", + FREE_SPACE_OBJECTID: "FREE_SPACE", + FREE_INO_OBJECTID: "FREE_INO", + MULTIPLE_OBJECTIDS: "MULTIPLE", + } + objidDevTreeNames = map[ObjID]string{ + DEV_STATS_OBJECTID: "DEV_STATS", + } + objidChunkTreeNames = map[ObjID]string{ + DEV_ITEMS_OBJECTID: "DEV_ITEMS", + FIRST_CHUNK_TREE_OBJECTID: "FIRST_CHUNK_TREE", + } + objidRootTreeNames = map[ObjID]string{ + ROOT_TREE_OBJECTID: "ROOT_TREE", + EXTENT_TREE_OBJECTID: "EXTENT_TREE", + CHUNK_TREE_OBJECTID: "CHUNK_TREE", + DEV_TREE_OBJECTID: "DEV_TREE", + FS_TREE_OBJECTID: "FS_TREE", + ROOT_TREE_DIR_OBJECTID: "ROOT_TREE_DIR", + CSUM_TREE_OBJECTID: "CSUM_TREE", + QUOTA_TREE_OBJECTID: "QUOTA_TREE", + UUID_TREE_OBJECTID: "UUID_TREE", + FREE_SPACE_TREE_OBJECTID: "FREE_SPACE_TREE", + BLOCK_GROUP_TREE_OBJECTID: "BLOCK_GROUP_TREE", + } +) + func (id ObjID) Format(tree ObjID) string { switch tree { case DEV_TREE_OBJECTID: - names := map[ObjID]string{ - DEV_STATS_OBJECTID: "DEV_STATS", - } - if name, ok := names[id]; ok { + if name, ok := objidDevTreeNames[id]; ok { return name } return fmt.Sprintf("%d", int64(id)) @@ -75,51 +107,18 @@ func (id ObjID) Format(tree ObjID) string { case UUID_TREE_OBJECTID: return fmt.Sprintf("%#016x", uint64(id)) case CHUNK_TREE_OBJECTID: - names := map[ObjID]string{ - BALANCE_OBJECTID: "BALANCE", - ORPHAN_OBJECTID: "ORPHAN", - TREE_LOG_OBJECTID: "TREE_LOG", - TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP", - TREE_RELOC_OBJECTID: "TREE_RELOC", - DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE", - EXTENT_CSUM_OBJECTID: "EXTENT_CSUM", - FREE_SPACE_OBJECTID: "FREE_SPACE", - FREE_INO_OBJECTID: "FREE_INO", - MULTIPLE_OBJECTIDS: "MULTIPLE", - - DEV_ITEMS_OBJECTID: "DEV_ITEMS", - FIRST_CHUNK_TREE_OBJECTID: "FIRST_CHUNK_TREE", + if name, ok := objidCommonNames[id]; ok { + return name } - if name, ok := names[id]; ok { + if name, ok := objidChunkTreeNames[id]; ok { return name } return fmt.Sprintf("%d", int64(id)) default: - names := map[ObjID]string{ - BALANCE_OBJECTID: "BALANCE", - ORPHAN_OBJECTID: "ORPHAN", - TREE_LOG_OBJECTID: "TREE_LOG", - TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP", - TREE_RELOC_OBJECTID: "TREE_RELOC", - DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE", - EXTENT_CSUM_OBJECTID: "EXTENT_CSUM", - FREE_SPACE_OBJECTID: "FREE_SPACE", - FREE_INO_OBJECTID: "FREE_INO", - MULTIPLE_OBJECTIDS: "MULTIPLE", - - ROOT_TREE_OBJECTID: "ROOT_TREE", - EXTENT_TREE_OBJECTID: "EXTENT_TREE", - CHUNK_TREE_OBJECTID: "CHUNK_TREE", - DEV_TREE_OBJECTID: "DEV_TREE", - FS_TREE_OBJECTID: "FS_TREE", - ROOT_TREE_DIR_OBJECTID: "ROOT_TREE_DIR", - CSUM_TREE_OBJECTID: "CSUM_TREE", - QUOTA_TREE_OBJECTID: "QUOTA_TREE", - UUID_TREE_OBJECTID: "UUID_TREE", - FREE_SPACE_TREE_OBJECTID: "FREE_SPACE_TREE", - BLOCK_GROUP_TREE_OBJECTID: "BLOCK_GROUP_TREE", + if name, ok := objidCommonNames[id]; ok { + return name } - if name, ok := names[id]; ok { + if name, ok := objidRootTreeNames[id]; ok { return name } return fmt.Sprintf("%d", int64(id)) -- cgit v1.2.3-2-g168b