aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-03-26 03:30:02 -0700
committerChris Lu <chris.lu@gmail.com>2020-03-26 03:30:02 -0700
commitc763a492f55b19dde1956d9d79551086f31de6b3 (patch)
tree8b8839cf9619995f740e96babd87646fd892505d
parent712720864d989b2c5a5b0c5b9667d1e2e3356fdf (diff)
downloadseaweedfs-c763a492f55b19dde1956d9d79551086f31de6b3.tar.xz
seaweedfs-c763a492f55b19dde1956d9d79551086f31de6b3.zip
refactor
-rw-r--r--weed/filesys/fscache.go12
1 files changed, 6 insertions, 6 deletions
diff --git a/weed/filesys/fscache.go b/weed/filesys/fscache.go
index 08bd641a5..7e5b0a68c 100644
--- a/weed/filesys/fscache.go
+++ b/weed/filesys/fscache.go
@@ -64,7 +64,7 @@ func (c *FsCache) DeleteFsNode(path util.FullPath) {
}
}
if t.parent != nil {
- t.parent.deleteChild(t.name)
+ t.parent.disconnectChild(t)
}
t.deleteSelf()
}
@@ -81,9 +81,8 @@ func (c *FsCache) Move(oldPath util.FullPath, newPath util.FullPath) *FsNode {
}
}
if src.parent != nil {
- src.parent.deleteChild(src.name)
+ src.parent.disconnectChild(src)
}
- src.parent = nil
// find new node
target := c.root
@@ -95,7 +94,7 @@ func (c *FsCache) Move(oldPath util.FullPath, newPath util.FullPath) *FsNode {
if dir, ok := src.node.(*Dir); ok {
dir.name = target.name // target is not Dir, but a shortcut
}
- parent.deleteChild(target.name)
+ parent.disconnectChild(target)
target.deleteSelf()
@@ -150,10 +149,11 @@ func (n *FsNode) ensureChild(name string) *FsNode {
return t
}
-func (n *FsNode) deleteChild(name string) {
+func (n *FsNode) disconnectChild(child *FsNode) {
n.childrenLock.Lock()
- delete(n.children, name)
+ delete(n.children, child.name)
n.childrenLock.Unlock()
+ child.parent = nil
}
func (n *FsNode) deleteSelf() {