diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-13 00:36:34 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-13 00:36:34 -0600 |
commit | 7df18a02a988086d940a011eafeb1b8d70775005 (patch) | |
tree | d0d3c39fa5d12dc5fcc8de2381b47667bc3cdbc0 /lib/btrfs/io2_lv.go | |
parent | f1e8040bc33e9057bd7a756a09c431c3f0d86226 (diff) |
Have TreeWalk be cancelable
Diffstat (limited to 'lib/btrfs/io2_lv.go')
-rw-r--r-- | lib/btrfs/io2_lv.go | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/btrfs/io2_lv.go b/lib/btrfs/io2_lv.go index eee58d5..b3f9276 100644 --- a/lib/btrfs/io2_lv.go +++ b/lib/btrfs/io2_lv.go @@ -38,7 +38,7 @@ func (fs *FS) AddDevice(ctx context.Context, dev *Device) error { } fs.cacheSuperblocks = nil fs.cacheSuperblock = nil - if err := fs.initDev(*sb); err != nil { + if err := fs.initDev(ctx, *sb); err != nil { dlog.Errorf(ctx, "error: AddDevice: %q: %v", dev.Name(), err) } return nil @@ -133,21 +133,21 @@ func (fs *FS) Superblock() (*Superblock, error) { return &sbs[0].Data, nil } -func (fs *FS) ReInit() error { +func (fs *FS) ReInit(ctx context.Context) error { fs.LV.ClearMappings() for _, dev := range fs.LV.PhysicalVolumes() { sb, err := dev.Superblock() if err != nil { return fmt.Errorf("file %q: %w", dev.Name(), err) } - if err := fs.initDev(*sb); err != nil { + if err := fs.initDev(ctx, *sb); err != nil { return fmt.Errorf("file %q: %w", dev.Name(), err) } } return nil } -func (fs *FS) initDev(sb Superblock) error { +func (fs *FS) initDev(ctx context.Context, sb Superblock) error { syschunks, err := sb.ParseSysChunkArray() if err != nil { return err @@ -160,7 +160,7 @@ func (fs *FS) initDev(sb Superblock) error { } } var errs derror.MultiError - fs.TreeWalk(CHUNK_TREE_OBJECTID, + fs.TreeWalk(ctx, CHUNK_TREE_OBJECTID, func(err *TreeError) { errs = append(errs, err) }, |