diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-08-24 09:27:49 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-08-24 12:05:31 -0600 |
commit | c95ae0b25133dc068e3d471a4a2c798be45b7930 (patch) | |
tree | 889caa49d5f023cfdfb3cce0fc4b73c2d4546c5c /lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go | |
parent | 6f73ced9a723aa68694593ebc1bb4e1e621b2f2d (diff) |
wip: work on rebuildmappings
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go')
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go b/lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go index bd390e0..91fecbc 100644 --- a/lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go +++ b/lib/btrfsprogs/btrfsinspect/rebuildmappings/blockgroups.go @@ -19,7 +19,7 @@ type BlockGroup struct { Flags btrfsvol.BlockGroupFlags } -func DedupBlockGroups(scanResults btrfsinspect.ScanDevicesResult) ([]BlockGroup, error) { +func DedupBlockGroups(scanResults btrfsinspect.ScanDevicesResult) (map[btrfsvol.LogicalAddr]BlockGroup, error) { // Dedup bgsSet := make(map[BlockGroup]struct{}) for _, devResults := range scanResults { @@ -47,6 +47,11 @@ func DedupBlockGroups(scanResults btrfsinspect.ScanDevicesResult) ([]BlockGroup, pos = bg.LAddr.Add(bg.Size) } - // Return - return bgsOrdered, nil + // Return. We return a map instead of a slice in order to + // facilitate easy deletes. + bgsMap := make(map[btrfsvol.LogicalAddr]BlockGroup, len(bgsSet)) + for bg := range bgsSet { + bgsMap[bg.LAddr] = bg + } + return bgsMap, nil } |