diff options
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect')
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/print_addrspace.go | 4 | ||||
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/recoverchunks.go | 15 |
2 files changed, 9 insertions, 10 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/print_addrspace.go b/lib/btrfsprogs/btrfsinspect/print_addrspace.go index d291b7c..7436d5b 100644 --- a/lib/btrfsprogs/btrfsinspect/print_addrspace.go +++ b/lib/btrfsprogs/btrfsinspect/print_addrspace.go @@ -26,12 +26,12 @@ func PrintLogicalSpace(out io.Writer, fs *btrfs.FS) { sumHole += size } if mapping.LAddr != prevBeg { - if mapping.Flags == nil { + if !mapping.Flags.OK { fmt.Fprintf(out, "chunk laddr=%v size=%v flags=(missing)\n", mapping.LAddr, mapping.Size) } else { fmt.Fprintf(out, "chunk laddr=%v size=%v flags=%v\n", - mapping.LAddr, mapping.Size, *mapping.Flags) + mapping.LAddr, mapping.Size, mapping.Flags.Val) } } fmt.Fprintf(out, "\tstripe dev_id=%v paddr=%v\n", diff --git a/lib/btrfsprogs/btrfsinspect/recoverchunks.go b/lib/btrfsprogs/btrfsinspect/recoverchunks.go index 25794be..012049c 100644 --- a/lib/btrfsprogs/btrfsinspect/recoverchunks.go +++ b/lib/btrfsprogs/btrfsinspect/recoverchunks.go @@ -14,6 +14,7 @@ import ( "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsitem" "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsvol" "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsutil" + "git.lukeshu.com/btrfs-progs-ng/lib/containers" "git.lukeshu.com/btrfs-progs-ng/lib/diskio" "git.lukeshu.com/btrfs-progs-ng/lib/maps" ) @@ -90,7 +91,6 @@ func (found ScanOneDevResult) AddToLV(ctx context.Context, fs *btrfs.FS, dev *bt }, Size: btrfsvol.AddrDelta(sb.NodeSize), SizeLocked: false, - Flags: nil, }); err != nil { dlog.Errorf(ctx, "... dev[%q] error: adding node ident: %v", dev.Name(), err) @@ -132,16 +132,15 @@ func (found ScanOneDevResult) AddToLV(ctx context.Context, fs *btrfs.FS, dev *bt } offsetWithinChunk := otherLAddr.Sub(bg.LAddr) - flags := bg.Flags mapping := btrfsvol.Mapping{ - LAddr: bg.LAddr, - PAddr: btrfsvol.QualifiedPhysicalAddr{ - Dev: otherPAddr.Dev, - Addr: otherPAddr.Addr.Add(-offsetWithinChunk), - }, + LAddr: bg.LAddr, + PAddr: otherPAddr.Add(-offsetWithinChunk), Size: bg.Size, SizeLocked: true, - Flags: &flags, + Flags: containers.Optional[btrfsvol.BlockGroupFlags]{ + OK: true, + Val: bg.Flags, + }, } if err := fs.LV.AddMapping(mapping); err != nil { dlog.Errorf(ctx, "... dev[%q] error: adding flags from blockgroup: %v", |