diff options
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/btrfs/crc32c.go | 5 | ||||
-rw-r--r-- | pkg/btrfsmisc/fsck.go | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/pkg/btrfs/crc32c.go b/pkg/btrfs/crc32c.go index 4ea4169..8266706 100644 --- a/pkg/btrfs/crc32c.go +++ b/pkg/btrfs/crc32c.go @@ -2,11 +2,16 @@ package btrfs import ( "encoding/binary" + "fmt" "hash/crc32" ) type CSum [0x20]byte +func (csum CSum) String() string { + return fmt.Sprintf("%x", csum) +} + func CRC32c(data []byte) CSum { crc := crc32.Update(0, crc32.MakeTable(crc32.Castagnoli), data) diff --git a/pkg/btrfsmisc/fsck.go b/pkg/btrfsmisc/fsck.go index a771cf4..e44dcb6 100644 --- a/pkg/btrfsmisc/fsck.go +++ b/pkg/btrfsmisc/fsck.go @@ -45,14 +45,13 @@ func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrf Size: sb.NodeSize, }, } - var nodeHeader btrfs.NodeHeader - if _, err := binstruct.Unmarshal(nodeBuf, &nodeHeader); err != nil { + if _, err := binstruct.Unmarshal(nodeBuf, &nodeRef.Data.Head); err != nil { fn(nil, fmt.Errorf("sector@%d: %w", pos, err)) } // sanity checking - if nodeHeader.MetadataUUID != sb.EffectiveMetadataUUID() { + if nodeRef.Data.Head.MetadataUUID != sb.EffectiveMetadataUUID() { //fmt.Printf("sector@%d does not look like a node\n", pos) continue } |