summaryrefslogtreecommitdiff
path: root/cmd/btrfs-fsck/pass0.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-11 22:48:35 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-11 23:29:54 -0600
commita0daaacdd61f196fbc0ca90ed996e7eeb4d4fcdd (patch)
tree56baf5f2eb237265a9e70e48936e16be43092ea9 /cmd/btrfs-fsck/pass0.go
parent839dfa5d0aeadee9cb0f8581341922138f9595f0 (diff)
move chunk reconstruction to btrfsinspect, add --mappings
Diffstat (limited to 'cmd/btrfs-fsck/pass0.go')
-rw-r--r--cmd/btrfs-fsck/pass0.go20
1 files changed, 6 insertions, 14 deletions
diff --git a/cmd/btrfs-fsck/pass0.go b/cmd/btrfs-fsck/pass0.go
index d69e6c0..ae86003 100644
--- a/cmd/btrfs-fsck/pass0.go
+++ b/cmd/btrfs-fsck/pass0.go
@@ -5,30 +5,22 @@
package main
import (
+ "context"
"fmt"
"os"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsvol"
+ "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsutil"
"git.lukeshu.com/btrfs-progs-ng/lib/util"
)
-func pass0(filenames ...string) (*btrfs.FS, *util.Ref[btrfsvol.PhysicalAddr, btrfs.Superblock], error) {
+func pass0(ctx context.Context, filenames ...string) (*btrfs.FS, *util.Ref[btrfsvol.PhysicalAddr, btrfs.Superblock], error) {
fmt.Printf("\nPass 0: init and superblocks...\n")
- fs := new(btrfs.FS)
- for _, filename := range filenames {
- fmt.Printf("Pass 0: ... adding device %q...\n", filename)
-
- fh, err := os.OpenFile(filename, os.O_RDWR, 0)
- if err != nil {
- _ = fs.Close()
- return nil, nil, fmt.Errorf("device %q: %w", filename, err)
- }
-
- if err := fs.AddDevice(&btrfs.Device{File: fh}); err != nil {
- fmt.Printf("Pass 0: ... add device %q: error: %v\n", filename, err)
- }
+ fs, err := btrfsutil.Open(ctx, os.O_RDWR, filenames...)
+ if err != nil {
+ return nil, nil, err
}
sb, err := fs.Superblock()