diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-07 12:10:42 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-14 21:31:45 -0600 |
commit | 3949bd3ff240bc6d06dd08f6e3183e72571e0e1d (patch) | |
tree | 08a3de7f9b043e3f7aee37cf25e827a87c762111 /cmd/btrfs-rec/inspect_lstrees.go | |
parent | d8f9c4d091f6c2554251941c933e4549502d2e84 (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.go | 23 |
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) } |