diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/btrfs/btrfstree/btree.go | 2 | ||||
-rw-r--r-- | lib/btrfs/btrfstree/btree_tree.go | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/btrfs/btrfstree/btree.go b/lib/btrfs/btrfstree/btree.go index 9713295..0e02a06 100644 --- a/lib/btrfs/btrfstree/btree.go +++ b/lib/btrfs/btrfstree/btree.go @@ -34,7 +34,7 @@ type TreeWalkHandler struct { BadNode func(Path, *Node, error) error PostNode func(Path, *Node) error // Callbacks for items on interior nodes - PreKeyPointer func(Path, KeyPointer) error + PreKeyPointer func(Path, KeyPointer) error // io/fs.SkipDir causes the KP to not be traversed PostKeyPointer func(Path, KeyPointer) error // Callbacks for items on leaf nodes Item func(Path, Item) error diff --git a/lib/btrfs/btrfstree/btree_tree.go b/lib/btrfs/btrfstree/btree_tree.go index e16e1c8..6ef195b 100644 --- a/lib/btrfs/btrfstree/btree_tree.go +++ b/lib/btrfs/btrfstree/btree_tree.go @@ -96,6 +96,9 @@ func (tree *RawTree) walk(ctx context.Context, path Path, errHandle func(*TreeEr }) if cbs.PreKeyPointer != nil { if err := cbs.PreKeyPointer(itemPath, item); err != nil { + if errors.Is(err, iofs.SkipDir) { + continue + } errHandle(&TreeError{Path: itemPath, Err: err}) } if ctx.Err() != nil { |