summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/inspect_rebuildmappings.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-15 11:11:10 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-15 11:11:10 -0600
commitd9cb7963948cfb1d705c35653f5237a5e8fee3f3 (patch)
treef435b2dfa56b6291e08c684f367de2d37fa11d43 /cmd/btrfs-rec/inspect_rebuildmappings.go
parent3d328d3fb2d3fc02d06ded773bae34810f36edc4 (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.go40
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
+}