summaryrefslogtreecommitdiff
path: root/lib/btrfs/io2_lv.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-13 00:36:34 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-13 00:36:34 -0600
commit7df18a02a988086d940a011eafeb1b8d70775005 (patch)
treed0d3c39fa5d12dc5fcc8de2381b47667bc3cdbc0 /lib/btrfs/io2_lv.go
parentf1e8040bc33e9057bd7a756a09c431c3f0d86226 (diff)
Have TreeWalk be cancelable
Diffstat (limited to 'lib/btrfs/io2_lv.go')
-rw-r--r--lib/btrfs/io2_lv.go10
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)
},