summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-06-05 10:36:03 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-06-05 10:36:03 -0600
commitfd100fd8425b82c09eba2e291d1dcbfcb1242774 (patch)
tree938e608438e512e939c505eaa6a86b0dc99c5d3d /pkg
parent30a2a24901e024dba8b40ca4102af9b4e64718c8 (diff)
more, fixup array init
Diffstat (limited to 'pkg')
-rw-r--r--pkg/btrfs/Makefile2
-rw-r--r--pkg/btrfs/btrfsitem/item_chunk.go1
-rw-r--r--pkg/btrfs/btrfsitem/item_dir.go1
-rw-r--r--pkg/btrfs/btrfsitem/item_inoderef.go1
-rw-r--r--pkg/btrfs/btrfsitem/item_uuid.go10
-rw-r--r--pkg/btrfs/internal/itemtype.go4
6 files changed, 10 insertions, 9 deletions
diff --git a/pkg/btrfs/Makefile b/pkg/btrfs/Makefile
index 9777cbe..c79b271 100644
--- a/pkg/btrfs/Makefile
+++ b/pkg/btrfs/Makefile
@@ -38,7 +38,7 @@ internal/itemtype.go: btrfsitem/items.txt $(MAKEFILE_LIST)
echo ')'; \
echo 'func (t ItemType) String() string {'; \
echo ' names := map[ItemType]string{'; \
- sed -E 's@(.*)=(.*) (.*)@\1_KEY: "\1",@' $<; \
+ sed -E 's@(.*)=(.*) (.*)@\1_KEY: "\1",@' $< | sed 's/"UUID_/&KEY_/'; \
echo ' }'; \
echo ' if name, ok := names[t]; ok {'; \
echo ' return name'; \
diff --git a/pkg/btrfs/btrfsitem/item_chunk.go b/pkg/btrfs/btrfsitem/item_chunk.go
index 826ecc6..eae8339 100644
--- a/pkg/btrfs/btrfsitem/item_chunk.go
+++ b/pkg/btrfs/btrfsitem/item_chunk.go
@@ -34,6 +34,7 @@ func (chunk *Chunk) UnmarshalBinary(dat []byte) (int, error) {
if err != nil {
return n, err
}
+ chunk.Stripes = nil
for i := 0; i < int(chunk.NumStripes); i++ {
var stripe ChunkStripe
_n, err := binstruct.Unmarshal(dat[n:], &stripe)
diff --git a/pkg/btrfs/btrfsitem/item_dir.go b/pkg/btrfs/btrfsitem/item_dir.go
index afef12d..6814041 100644
--- a/pkg/btrfs/btrfsitem/item_dir.go
+++ b/pkg/btrfs/btrfsitem/item_dir.go
@@ -10,6 +10,7 @@ import (
type DirList []Dir // DIR_ITEM=84, DIR_INDEX=96, XATTR_ITEM=24
func (o *DirList) UnmarshalBinary(dat []byte) (int, error) {
+ *o = nil
n := 0
for n < len(dat) {
var ref Dir
diff --git a/pkg/btrfs/btrfsitem/item_inoderef.go b/pkg/btrfs/btrfsitem/item_inoderef.go
index e59c4b3..39b7738 100644
--- a/pkg/btrfs/btrfsitem/item_inoderef.go
+++ b/pkg/btrfs/btrfsitem/item_inoderef.go
@@ -7,6 +7,7 @@ import (
type InodeRefList []InodeRef // INODE_REF=12
func (o *InodeRefList) UnmarshalBinary(dat []byte) (int, error) {
+ *o = nil
n := 0
for n < len(dat) {
var ref InodeRef
diff --git a/pkg/btrfs/btrfsitem/item_uuid.go b/pkg/btrfs/btrfsitem/item_uuid.go
index 894ccff..d66e102 100644
--- a/pkg/btrfs/btrfsitem/item_uuid.go
+++ b/pkg/btrfs/btrfsitem/item_uuid.go
@@ -7,12 +7,10 @@ import (
// The Key for this item is a UUID, and the item is a list of
// subvolume IDs (ObjectIDs) that that UUID maps to.
-type UUIDMap struct { // UUID_SUBVOL=251 UUID_RECEIVED_SUBVOL=252
- SubvolIDs []internal.ObjID
-}
+type UUIDMap []internal.ObjID // UUID_SUBVOL=251 UUID_RECEIVED_SUBVOL=252
func (o *UUIDMap) UnmarshalBinary(dat []byte) (int, error) {
- o.SubvolIDs = nil
+ *o = nil
var n int
for len(dat) > n {
var subvolID internal.ObjID
@@ -21,14 +19,14 @@ func (o *UUIDMap) UnmarshalBinary(dat []byte) (int, error) {
if err != nil {
return n, err
}
- o.SubvolIDs = append(o.SubvolIDs, subvolID)
+ *o = append(*o, subvolID)
}
return n, nil
}
func (o UUIDMap) MarshalBinary() ([]byte, error) {
var ret []byte
- for _, subvolID := range o.SubvolIDs {
+ for _, subvolID := range o {
bs, err := binstruct.Marshal(subvolID)
ret = append(ret, bs...)
if err != nil {
diff --git a/pkg/btrfs/internal/itemtype.go b/pkg/btrfs/internal/itemtype.go
index 7f16889..c046ea3 100644
--- a/pkg/btrfs/internal/itemtype.go
+++ b/pkg/btrfs/internal/itemtype.go
@@ -53,8 +53,8 @@ func (t ItemType) String() string {
PERSISTENT_ITEM_KEY: "PERSISTENT_ITEM",
ROOT_ITEM_KEY: "ROOT_ITEM",
SHARED_DATA_REF_KEY: "SHARED_DATA_REF",
- UUID_SUBVOL_KEY: "UUID_SUBVOL",
- UUID_RECEIVED_SUBVOL_KEY: "UUID_RECEIVED_SUBVOL",
+ UUID_SUBVOL_KEY: "UUID_KEY_SUBVOL",
+ UUID_RECEIVED_SUBVOL_KEY: "UUID_KEY_RECEIVED_SUBVOL",
}
if name, ok := names[t]; ok {
return name