From 48b23f2fdd8ba48fb2b99ea7e765bbfb57c9554e Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 26 Jun 2020 10:00:48 -0700 Subject: [PATCH] FUSE mount: prevent concurrent modification --- weed/util/bounded_tree/bounded_tree.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/weed/util/bounded_tree/bounded_tree.go b/weed/util/bounded_tree/bounded_tree.go index 8c99ad83d..40b9c4e47 100644 --- a/weed/util/bounded_tree/bounded_tree.go +++ b/weed/util/bounded_tree/bounded_tree.go @@ -1,6 +1,8 @@ package bounded_tree import ( + "sync" + "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/util" ) @@ -13,6 +15,7 @@ type Node struct { type BoundedTree struct { root *Node + sync.Mutex } func NewBoundedTree() *BoundedTree { @@ -30,8 +33,8 @@ type VisitNodeFunc func(path util.FullPath) (childDirectories []string, err erro // A leaf node, which has no children, represents a directory not visited. // A non-leaf node or a non-existing node represents a directory already visited, or does not need to visit. func (t *BoundedTree) EnsureVisited(p util.FullPath, visitFn VisitNodeFunc) { - // println() - // println("EnsureVisited", p) + t.Lock() + defer t.Unlock() if t.root == nil { return