From 79cb12dde9352331c15724b7d0892fd4ce5ea342 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 12 Feb 2023 13:14:43 -0700 Subject: btrfsitem, btrfsinspect/print_tree: Implement the QGroup types --- lib/btrfs/btrfsprim/itemtype.go | 6 ++++++ lib/btrfs/btrfsprim/objid.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/btrfs/btrfsprim') diff --git a/lib/btrfs/btrfsprim/itemtype.go b/lib/btrfs/btrfsprim/itemtype.go index 5c7d0e8..0b6baee 100644 --- a/lib/btrfs/btrfsprim/itemtype.go +++ b/lib/btrfs/btrfsprim/itemtype.go @@ -25,7 +25,10 @@ const ( 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) @@ -58,7 +61,10 @@ func (t ItemType) String() string { 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", diff --git a/lib/btrfs/btrfsprim/objid.go b/lib/btrfs/btrfsprim/objid.go index 5ba213d..8ad290b 100644 --- a/lib/btrfs/btrfsprim/objid.go +++ b/lib/btrfs/btrfsprim/objid.go @@ -68,7 +68,7 @@ func (id ObjID) Format(typ ItemType) string { case DEV_EXTENT_KEY: return fmt.Sprintf("%d", int64(id)) case QGROUP_RELATION_KEY: - //nolint:gomnd // TODO: I'm not sure what the 48/16 bit split means. + //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)) -- cgit v1.2.3-54-g00ecf