diff options
Diffstat (limited to 'cmd/btrfs-fsck/pass0.go')
-rw-r--r-- | cmd/btrfs-fsck/pass0.go | 20 |
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() |