diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-15 11:11:10 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-15 11:11:10 -0600 |
commit | d9cb7963948cfb1d705c35653f5237a5e8fee3f3 (patch) | |
tree | f435b2dfa56b6291e08c684f367de2d37fa11d43 /cmd/btrfs-rec/inspect_rebuildmappings.go | |
parent | 3d328d3fb2d3fc02d06ded773bae34810f36edc4 (diff) |
down to just 2 rebuilt errors!
ERRO[0248] ... dev["../scratch/dump-zero.img"] error: could not pair blockgroup laddr=0x0000000000500000 (size=0x0000000000800000 flags=METADATA|single) with a mapping THREAD=/main
ERRO[0248] ... dev["../scratch/dump-zero.img"] error: adding flags from blockgroup: (0xc00022a050).AddMapping: member devext has locked size=0x0000000000800000, but union would have size=0x0000000040000000 THREAD=/main
Diffstat (limited to 'cmd/btrfs-rec/inspect_rebuildmappings.go')
-rw-r--r-- | cmd/btrfs-rec/inspect_rebuildmappings.go | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/cmd/btrfs-rec/inspect_rebuildmappings.go b/cmd/btrfs-rec/inspect_rebuildmappings.go index c32bf53..ab767a9 100644 --- a/cmd/btrfs-rec/inspect_rebuildmappings.go +++ b/cmd/btrfs-rec/inspect_rebuildmappings.go @@ -60,21 +60,35 @@ func init() { } dlog.Infof(ctx, "Writing reconstructed mappings to stdout...") - mappings := fs.LV.Mappings() - _, _ = io.WriteString(os.Stdout, "[\n") - for i, mapping := range mappings { - suffix := "," - if i == len(mappings)-1 { - suffix = "" - } - bs, err := json.Marshal(mapping) - if err != nil { - return err - } - fmt.Printf(" %s%s\n", bs, suffix) + if err := writeMappingsJSON(os.Stdout, fs); err != nil { + return err } - _, _ = io.WriteString(os.Stdout, "]\n") + return nil }, }) } + +func writeMappingsJSON(w io.Writer, fs *btrfs.FS) error { + mappings := fs.LV.Mappings() + if _, err := io.WriteString(w, "[\n"); err != nil { + return err + } + for i, mapping := range mappings { + suffix := "," + if i == len(mappings)-1 { + suffix = "" + } + bs, err := json.Marshal(mapping) + if err != nil { + return err + } + if _, err := fmt.Printf(" %s%s\n", bs, suffix); err != nil { + return err + } + } + if _, err := io.WriteString(w, "]\n"); err != nil { + return err + } + return nil +} |