From 7df18a02a988086d940a011eafeb1b8d70775005 Mon Sep 17 00:00:00 2001
From: Luke Shumaker <lukeshu@lukeshu.com>
Date: Wed, 13 Jul 2022 00:36:34 -0600
Subject: Have TreeWalk be cancelable

---
 lib/btrfsprogs/btrfsutil/walk.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'lib/btrfsprogs/btrfsutil')

diff --git a/lib/btrfsprogs/btrfsutil/walk.go b/lib/btrfsprogs/btrfsutil/walk.go
index d2b6367..c597e5e 100644
--- a/lib/btrfsprogs/btrfsutil/walk.go
+++ b/lib/btrfsprogs/btrfsutil/walk.go
@@ -5,6 +5,7 @@
 package btrfsutil
 
 import (
+	"context"
 	"fmt"
 
 	"git.lukeshu.com/btrfs-progs-ng/lib/btrfs"
@@ -34,7 +35,7 @@ type WalkAllTreesHandler struct {
 // WalkAllTrees walks all trees in a *btrfs.FS.  Rather than returning
 // an error, it calls errCb each time an error is encountered.  The
 // error will always be of type WalkError.
-func WalkAllTrees(fs *btrfs.FS, cbs WalkAllTreesHandler) {
+func WalkAllTrees(ctx context.Context, fs *btrfs.FS, cbs WalkAllTreesHandler) {
 	var treeName string
 
 	trees := []struct {
@@ -83,6 +84,7 @@ func WalkAllTrees(fs *btrfs.FS, cbs WalkAllTreesHandler) {
 			cbs.PreTree(treeName, tree.ID)
 		}
 		fs.TreeWalk(
+			ctx,
 			tree.ID,
 			func(err *btrfs.TreeError) { cbs.Err(&WalkError{TreeName: treeName, Err: err}) },
 			cbs.TreeWalkHandler,
-- 
cgit v1.2.3-2-g168b