diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-07-25 12:55:44 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-07-25 12:55:44 -0600 |
commit | b3ef47542802ecd06498a2fc3a87ce26f7bc1e98 (patch) | |
tree | 7345d8fb1b1d6b0221b6fac81e8c5c96cb6ed4d4 /lib/btrfs | |
parent | c57cc3d4739ffa0346350c63fb4ec59a63b56e46 (diff) | |
parent | b581d0ceb3cd0fee2e78c677bb0805cc68115661 (diff) |
Merge branch 'lukeshu/process-without-pv'
Diffstat (limited to 'lib/btrfs')
-rw-r--r-- | lib/btrfs/io1_pv.go | 5 | ||||
-rw-r--r-- | lib/btrfs/io2_lv.go | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/lib/btrfs/io1_pv.go b/lib/btrfs/io1_pv.go index 3b13f73..46eb24d 100644 --- a/lib/btrfs/io1_pv.go +++ b/lib/btrfs/io1_pv.go @@ -30,19 +30,18 @@ var SuperblockAddrs = []btrfsvol.PhysicalAddr{ 0x40_0000_0000, // 256GiB } -var superblockSize = binstruct.StaticSize(btrfstree.Superblock{}) +var SuperblockSize = btrfsvol.PhysicalAddr(binstruct.StaticSize(btrfstree.Superblock{})) func (dev *Device) Superblocks() ([]*diskio.Ref[btrfsvol.PhysicalAddr, btrfstree.Superblock], error) { if dev.cacheSuperblocks != nil { return dev.cacheSuperblocks, nil } - superblockSize := btrfsvol.PhysicalAddr(superblockSize) sz := dev.Size() var ret []*diskio.Ref[btrfsvol.PhysicalAddr, btrfstree.Superblock] for i, addr := range SuperblockAddrs { - if addr+superblockSize <= sz { + if addr+SuperblockSize <= sz { superblock := &diskio.Ref[btrfsvol.PhysicalAddr, btrfstree.Superblock]{ File: dev, Addr: addr, diff --git a/lib/btrfs/io2_lv.go b/lib/btrfs/io2_lv.go index e9de215..16c5987 100644 --- a/lib/btrfs/io2_lv.go +++ b/lib/btrfs/io2_lv.go @@ -43,7 +43,7 @@ func (fs *FS) AddDevice(ctx context.Context, dev *Device) error { } fs.cacheSuperblocks = nil fs.cacheSuperblock = nil - if err := fs.initDev(ctx, *sb); err != nil { + if err := fs.initDev(*sb); err != nil { dlog.Errorf(ctx, "error: AddDevice: %q: %v", dev.Name(), err) } return nil @@ -142,14 +142,14 @@ func (fs *FS) ReInit(ctx context.Context) error { if err != nil { return fmt.Errorf("file %q: %w", dev.Name(), err) } - if err := fs.initDev(ctx, *sb); err != nil { + if err := fs.initDev(*sb); err != nil { return fmt.Errorf("file %q: %w", dev.Name(), err) } } - return nil + return fs.InitChunks(ctx) } -func (fs *FS) initDev(ctx context.Context, sb btrfstree.Superblock) error { +func (fs *FS) initDev(sb btrfstree.Superblock) error { syschunks, err := sb.ParseSysChunkArray() if err != nil { return err @@ -161,6 +161,10 @@ func (fs *FS) initDev(ctx context.Context, sb btrfstree.Superblock) error { } } } + return nil +} + +func (fs *FS) InitChunks(ctx context.Context) error { chunkTree, err := fs.ForrestLookup(ctx, btrfsprim.CHUNK_TREE_OBJECTID) if err != nil { return err |