summaryrefslogtreecommitdiff
path: root/cmd/btrfs-fsck/pass0.go
diff options
context:
space:
mode:
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()