aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer/embedded_filer/filer_embedded.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/weed/filer/embedded_filer/filer_embedded.go b/weed/filer/embedded_filer/filer_embedded.go
index 27299eb40..4a335058b 100644
--- a/weed/filer/embedded_filer/filer_embedded.go
+++ b/weed/filer/embedded_filer/filer_embedded.go
@@ -5,6 +5,7 @@ import (
"fmt"
"path/filepath"
"strings"
+ "sync"
"github.com/chrislusf/seaweedfs/weed/filer"
"github.com/chrislusf/seaweedfs/weed/operation"
@@ -14,6 +15,7 @@ type FilerEmbedded struct {
master string
directories *DirectoryManagerInMap
files *FileListInLevelDb
+ mvMutex sync.Mutex
}
func NewFilerEmbedded(master string, dir string) (filer *FilerEmbedded, err error) {
@@ -121,6 +123,9 @@ mv fromFile toDir
mv fromFile toFile
*/
func (filer *FilerEmbedded) Move(fromPath string, toPath string) error {
+ filer.mvMutex.Lock()
+ defer filer.mvMutex.Unlock()
+
if _, dir_err := filer.FindDirectory(fromPath); dir_err == nil {
if _, err := filer.FindDirectory(toPath); err == nil {
// move folder under an existing folder