aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2017-03-11 20:20:43 -0800
committerGitHub <noreply@github.com>2017-03-11 20:20:43 -0800
commit427c7fbf937b7c67aa4c9f54d9836015b5545eee (patch)
treeeff75b9122c148e8828747b3e94891a3d268eab7
parentb20cdff82d58e78f7f6b5e3ca77b0dc501849d59 (diff)
parenta72c92e55f3916cb38923c4b12a0370633c4c9ed (diff)
downloadseaweedfs-427c7fbf937b7c67aa4c9f54d9836015b5545eee.tar.xz
seaweedfs-427c7fbf937b7c67aa4c9f54d9836015b5545eee.zip
Merge pull request #470 from stepanbujnak/master
Added locking on the filer move operation
-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