summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/inspect_lstrees.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-03-07 12:10:42 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-03-14 21:31:45 -0600
commit3949bd3ff240bc6d06dd08f6e3183e72571e0e1d (patch)
tree08a3de7f9b043e3f7aee37cf25e827a87c762111 /cmd/btrfs-rec/inspect_lstrees.go
parentd8f9c4d091f6c2554251941c933e4549502d2e84 (diff)
Expose node-lists as a thing on the CLI
Diffstat (limited to 'cmd/btrfs-rec/inspect_lstrees.go')
-rw-r--r--cmd/btrfs-rec/inspect_lstrees.go23
1 files changed, 17 insertions, 6 deletions
diff --git a/cmd/btrfs-rec/inspect_lstrees.go b/cmd/btrfs-rec/inspect_lstrees.go
index 1ff7671..05c3a57 100644
--- a/cmd/btrfs-rec/inspect_lstrees.go
+++ b/cmd/btrfs-rec/inspect_lstrees.go
@@ -26,14 +26,24 @@ import (
)
func init() {
- var scandevicesFilename string
+ var nodeListFilename string
cmd := &cobra.Command{
Use: "ls-trees",
Short: "A brief view what types of items are in each tree",
- Args: cliutil.WrapPositionalArgs(cobra.NoArgs),
+ Long: "" +
+ "If no --node-list is given, then a slow sector-by-sector scan " +
+ "will be used to find all lost+found nodes.",
+ Args: cliutil.WrapPositionalArgs(cobra.NoArgs),
RunE: runWithRawFS(func(fs *btrfs.FS, cmd *cobra.Command, _ []string) error {
ctx := cmd.Context()
- nodeList, err := readNodeList(ctx, scandevicesFilename)
+
+ var nodeList []btrfsvol.LogicalAddr
+ var err error
+ if nodeListFilename != "" {
+ nodeList, err = readJSONFile[[]btrfsvol.LogicalAddr](ctx, nodeListFilename)
+ } else {
+ nodeList, err = btrfsutil.ListNodes(ctx, fs)
+ }
if err != nil {
return err
}
@@ -86,7 +96,7 @@ func init() {
},
})
- if scandevicesFilename != "" {
+ {
treeErrCnt = 0
treeItemCnt = make(map[btrfsitem.Type]int)
textui.Fprintf(os.Stdout, "lost+found\n")
@@ -114,8 +124,9 @@ func init() {
return nil
}),
}
- cmd.Flags().StringVar(&scandevicesFilename, "scandevices", "", "Output of 'btrfs-recs inspect rebuild-mappings scan' to use for a lost+found tree")
- noError(cmd.MarkFlagFilename("scandevices"))
+ cmd.Flags().StringVar(&nodeListFilename, "node-list", "",
+ "Output of 'btrfs-recs inspect [rebuild-mappings] list-nodes' to use for a lost+found tree")
+ noError(cmd.MarkFlagFilename("node-list"))
inspectors.AddCommand(cmd)
}