summaryrefslogtreecommitdiff
path: root/cmd/btrfs-rec/repair_clearbadnodes.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/btrfs-rec/repair_clearbadnodes.go')
-rw-r--r--cmd/btrfs-rec/repair_clearbadnodes.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/cmd/btrfs-rec/repair_clearbadnodes.go b/cmd/btrfs-rec/repair_clearbadnodes.go
new file mode 100644
index 0000000..58b8bd6
--- /dev/null
+++ b/cmd/btrfs-rec/repair_clearbadnodes.go
@@ -0,0 +1,28 @@
+// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com>
+//
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package main
+
+import (
+ "os"
+
+ "github.com/datawire/ocibuild/pkg/cliutil"
+ "github.com/spf13/cobra"
+
+ "git.lukeshu.com/btrfs-progs-ng/lib/btrfs"
+ "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsrepair"
+)
+
+func init() {
+ repairers = append(repairers, subcommand{
+ Command: cobra.Command{
+ Use: "clear-bad-nodes",
+ Short: "Overwrite corrupt nodes with empty nodes",
+ Args: cliutil.WrapPositionalArgs(cobra.NoArgs),
+ },
+ RunE: func(fs *btrfs.FS, _ *cobra.Command, _ []string) error {
+ return btrfsrepair.ClearBadNodes(os.Stdout, os.Stderr, fs)
+ },
+ })
+}