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.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/cmd/btrfs-fsck/pass0.go b/cmd/btrfs-fsck/pass0.go
index 8482826..2a8e20a 100644
--- a/cmd/btrfs-fsck/pass0.go
+++ b/cmd/btrfs-fsck/pass0.go
@@ -2,18 +2,27 @@ package main
import (
"fmt"
+ "os"
"lukeshu.com/btrfs-tools/pkg/btrfs"
"lukeshu.com/btrfs-tools/pkg/util"
)
-func pass0(fs *btrfs.FS) (*util.Ref[btrfs.PhysicalAddr, btrfs.Superblock], error) {
- fmt.Printf("\nPass 0: superblocks...\n")
+func pass0(imgfiles ...*os.File) (*btrfs.FS, *util.Ref[btrfs.PhysicalAddr, btrfs.Superblock], error) {
+ fmt.Printf("\nPass 0: init and superblocks...\n")
- superblock, err := fs.Superblock()
+ fs := new(btrfs.FS)
+ for _, imgfile := range imgfiles {
+ fmt.Printf("Pass 0: ... adding device %q...\n", imgfile.Name())
+ if err := fs.AddDevice(&btrfs.Device{File: imgfile}); err != nil {
+ fmt.Printf("Pass 0: ... add device %q: error: %v\n", imgfile.Name(), err)
+ }
+ }
+
+ sb, err := fs.Superblock()
if err != nil {
- return nil, fmt.Errorf("superblock: %w", err)
+ return nil, nil, err
}
- return superblock, nil
+ return fs, sb, nil
}