summaryrefslogtreecommitdiff
path: root/pkg/btrfs/btrfsitem/items.go.bak
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/btrfs/btrfsitem/items.go.bak')
-rw-r--r--pkg/btrfs/btrfsitem/items.go.bak193
1 files changed, 193 insertions, 0 deletions
diff --git a/pkg/btrfs/btrfsitem/items.go.bak b/pkg/btrfs/btrfsitem/items.go.bak
new file mode 100644
index 0000000..9a91d97
--- /dev/null
+++ b/pkg/btrfs/btrfsitem/items.go.bak
@@ -0,0 +1,193 @@
+package btrfsitem
+
+import (
+ "lukeshu.com/btrfs-tools/pkg/btrfs/btrfstyp"
+)
+
+type Type = btrfstyp.ItemType
+
+const (
+ BTRFS_UNTYPED_KEY = btrfstyp.ItemType(0)
+
+ // inode items have the data typically returned from stat and store other
+ // info about object characteristics. There is one for every file and dir in
+ // the FS
+ BTRFS_INODE_ITEM_KEY = btrfstyp.ItemType(1)
+ BTRFS_INODE_REF_KEY = btrfstyp.ItemType(12)
+ BTRFS_INODE_EXTREF_KEY = btrfstyp.ItemType(13)
+ BTRFS_XATTR_ITEM_KEY = btrfstyp.ItemType(24)
+
+ BTRFS_VERITY_DESC_ITEM_KEY = btrfstyp.ItemType(36) // new
+ BTRFS_VERITY_MERKLE_ITEM_KEY = btrfstyp.ItemType(37) // new
+
+ BTRFS_ORPHAN_ITEM_KEY = btrfstyp.ItemType(48)
+
+ BTRFS_DIR_LOG_ITEM_KEY = btrfstyp.ItemType(60)
+ BTRFS_DIR_LOG_INDEX_KEY = btrfstyp.ItemType(72)
+ // dir items are the name -> inode pointers in a directory. There is one
+ // for every name in a directory.
+ BTRFS_DIR_ITEM_KEY = btrfstyp.ItemType(84)
+ BTRFS_DIR_INDEX_KEY = btrfstyp.ItemType(96)
+
+ // extent data is for file data
+ BTRFS_EXTENT_DATA_KEY = btrfstyp.ItemType(108)
+
+ // csum items have the checksums for data in the extents
+ BTRFS_CSUM_ITEM_KEY = btrfstyp.ItemType(120) // new
+ // extent csums are stored in a separate tree and hold csums for
+ // an entire extent on disk.
+ BTRFS_EXTENT_CSUM_KEY = btrfstyp.ItemType(128)
+
+ // root items point to tree roots. There are typically in the root
+ // tree used by the super block to find all the other trees
+ BTRFS_ROOT_ITEM_KEY = btrfstyp.ItemType(132)
+
+ // root backrefs tie subvols and snapshots to the directory entries that
+ // reference them
+ BTRFS_ROOT_BACKREF_KEY = btrfstyp.ItemType(144)
+
+ // root refs make a fast index for listing all of the snapshots and
+ // subvolumes referenced by a given root. They point directly to the
+ // directory item in the root that references the subvol
+ BTRFS_ROOT_REF_KEY = btrfstyp.ItemType(156)
+
+ // extent items are in the extent map tree. These record which blocks
+ // are used, and how many references there are to each block
+ BTRFS_EXTENT_ITEM_KEY = btrfstyp.ItemType(168)
+
+ // The same as the BTRFS_EXTENT_ITEM_KEY, except it's metadata we already know
+ // the length, so we save the level in key->offset instead of the length.
+ BTRFS_METADATA_ITEM_KEY = btrfstyp.ItemType(169) // new
+
+ BTRFS_TREE_BLOCK_REF_KEY = btrfstyp.ItemType(176)
+
+ BTRFS_EXTENT_DATA_REF_KEY = btrfstyp.ItemType(178)
+
+ // old style extent backrefs
+ BTRFS_EXTENT_REF_V0_KEY = btrfstyp.ItemType(180)
+
+ BTRFS_SHARED_BLOCK_REF_KEY = btrfstyp.ItemType(182)
+
+ BTRFS_SHARED_DATA_REF_KEY = btrfstyp.ItemType(184)
+
+ // block groups give us hints into the extent allocation trees. Which
+ // blocks are free etc etc
+ BTRFS_BLOCK_GROUP_ITEM_KEY = btrfstyp.ItemType(192)
+
+ // Every block group is represented in the free space tree by a free space info
+ // item, which stores some accounting information. It is keyed on
+ // (block_group_start, FREE_SPACE_INFO, block_group_length).
+ BTRFS_FREE_SPACE_INFO_KEY = btrfstyp.ItemType(198) // new
+
+ // A free space extent tracks an extent of space that is free in a block group.
+ // It is keyed on (start, FREE_SPACE_EXTENT, length).
+ BTRFS_FREE_SPACE_EXTENT_KEY = btrfstyp.ItemType(199) // new
+
+ // When a block group becomes very fragmented, we convert it to use bitmaps
+ // instead of extents. A free space bitmap is keyed on
+ // (start, FREE_SPACE_BITMAP, length); the corresponding item is a bitmap with
+ // (length / sectorsize) bits.
+ BTRFS_FREE_SPACE_BITMAP_KEY = btrfstyp.ItemType(200) // new
+
+ BTRFS_DEV_EXTENT_KEY = btrfstyp.ItemType(204)
+ BTRFS_DEV_ITEM_KEY = btrfstyp.ItemType(216)
+ BTRFS_CHUNK_ITEM_KEY = btrfstyp.ItemType(228)
+
+ // quota groups
+ BTRFS_QGROUP_STATUS_KEY = btrfstyp.ItemType(240) // new
+ BTRFS_QGROUP_INFO_KEY = btrfstyp.ItemType(242) // new
+ BTRFS_QGROUP_LIMIT_KEY = btrfstyp.ItemType(244) // new
+ BTRFS_QGROUP_RELATION_KEY = btrfstyp.ItemType(246) // new
+
+ // The key type for tree items that are stored persistently, but do not need to
+ // exist for extended period of time. The items can exist in any tree.
+ //
+ // [subtype, BTRFS_TEMPORARY_ITEM_KEY, data]
+ //
+ // Existing items:
+ //
+ // - balance status item
+ // (BTRFS_BALANCE_OBJECTID, BTRFS_TEMPORARY_ITEM_KEY, 0)
+ BTRFS_TEMPORARY_ITEM_KEY = btrfstyp.ItemType(248) // new
+
+ // The key type for tree items that are stored persistently and usually exist
+ // for a long period, eg. filesystem lifetime. The item kinds can be status
+ // information, stats or preference values. The item can exist in any tree.
+ //
+ // [subtype, BTRFS_PERSISTENT_ITEM_KEY, data]
+ //
+ // Existing items:
+ //
+ // - device statistics, store IO stats in the device tree, one key for all
+ // stats
+ // (BTRFS_DEV_STATS_OBJECTID, BTRFS_DEV_STATS_KEY, 0)
+ BTRFS_PERSISTENT_ITEM_KEY = btrfstyp.ItemType(249) // new
+
+ // Persistently stores the device replace state in the device tree.
+ // The key is built like this: (0, BTRFS_DEV_REPLACE_KEY, 0).
+ BTRFS_DEV_REPLACE_KEY = btrfstyp.ItemType(250)
+
+ // Stores items that allow to quickly map UUIDs to something else.
+ // These items are part of the filesystem UUID tree.
+ // The key is built like this:
+ // (UUID_upper_64_bits, BTRFS_UUID_KEY*, UUID_lower_64_bits).
+ BTRFS_UUID_KEY_SUBVOL = btrfstyp.ItemType(251) // for UUIDs assigned to subvols // new
+ BTRFS_UUID_KEY_RECEIVED_SUBVOL = btrfstyp.ItemType(252) // for UUIDs assigned to received subvols // new
+
+ // string items are for debugging. They just store a short string of
+ // data in the FS
+ BTRFS_STRING_ITEM_KEY = btrfstyp.ItemType(253)
+)
+
+/*
+func (t btrfstyp.ItemType) String() string {
+ names := map[btrfstyp.ItemType]string{
+ BTRFS_UNTYPED_KEY: "UNTYPED",
+ BTRFS_INODE_ITEM_KEY: "INODE_ITEM",
+ BTRFS_INODE_REF_KEY: "INODE_REF",
+ BTRFS_INODE_EXTREF_KEY: "INODE_EXTREF",
+ BTRFS_XATTR_ITEM_KEY: "XATTR_ITEM",
+ BTRFS_VERITY_DESC_ITEM_KEY: "VERITY_DESC_ITEM",
+ BTRFS_VERITY_MERKLE_ITEM_KEY: "VERITY_MERKLE_ITEM",
+ BTRFS_ORPHAN_ITEM_KEY: "ORPHAN_ITEM",
+ BTRFS_DIR_LOG_ITEM_KEY: "DIR_LOG_ITEM",
+ BTRFS_DIR_LOG_INDEX_KEY: "DIR_LOG_INDEX",
+ BTRFS_DIR_ITEM_KEY: "DIR_ITEM",
+ BTRFS_DIR_INDEX_KEY: "DIR_INDEX",
+ BTRFS_EXTENT_DATA_KEY: "EXTENT_DATA",
+ BTRFS_CSUM_ITEM_KEY: "CSUM_ITEM",
+ BTRFS_EXTENT_CSUM_KEY: "EXTENT_CSUM",
+ BTRFS_ROOT_ITEM_KEY: "ROOT_ITEM",
+ BTRFS_ROOT_BACKREF_KEY: "ROOT_BACKREF",
+ BTRFS_ROOT_REF_KEY: "ROOT_REF",
+ BTRFS_EXTENT_ITEM_KEY: "EXTENT_ITEM",
+ BTRFS_METADATA_ITEM_KEY: "METADATA_ITEM",
+ BTRFS_TREE_BLOCK_REF_KEY: "TREE_BLOCK_REF",
+ BTRFS_EXTENT_DATA_REF_KEY: "EXTENT_DATA_REF",
+ BTRFS_EXTENT_REF_V0_KEY: "EXTENT_REF_V0",
+ BTRFS_SHARED_BLOCK_REF_KEY: "SHARED_BLOCK_REF",
+ BTRFS_SHARED_DATA_REF_KEY: "SHARED_DATA_REF",
+ BTRFS_BLOCK_GROUP_ITEM_KEY: "BLOCK_GROUP_ITEM",
+ BTRFS_FREE_SPACE_INFO_KEY: "FREE_SPACE_INFO",
+ BTRFS_FREE_SPACE_EXTENT_KEY: "FREE_SPACE_EXTENT",
+ BTRFS_FREE_SPACE_BITMAP_KEY: "FREE_SPACE_BITMAP",
+ BTRFS_DEV_EXTENT_KEY: "DEV_EXTENT",
+ BTRFS_DEV_ITEM_KEY: "DEV_ITEM",
+ BTRFS_CHUNK_ITEM_KEY: "CHUNK_ITEM",
+ BTRFS_QGROUP_STATUS_KEY: "QGROUP_STATUS",
+ BTRFS_QGROUP_INFO_KEY: "QGROUP_INFO",
+ BTRFS_QGROUP_LIMIT_KEY: "QGROUP_LIMIT",
+ BTRFS_QGROUP_RELATION_KEY: "QGROUP_RELATION",
+ BTRFS_TEMPORARY_ITEM_KEY: "TEMPORARY_ITEM",
+ BTRFS_PERSISTENT_ITEM_KEY: "PERSISTENT_ITEM",
+ BTRFS_DEV_REPLACE_KEY: "DEV_REPLACE",
+ BTRFS_UUID_KEY_SUBVOL: "UUID_KEY_SUBVOL",
+ BTRFS_UUID_KEY_RECEIVED_SUBVOL: "UUID_KEY_RECEIVED_SUBVOL",
+ BTRFS_STRING_ITEM_KEY: "STRING_ITEM",
+ }
+ if name, ok := names[t]; ok {
+ return name
+ }
+ return fmt.Sprintf("%d", t)
+}
+*/