diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2017-03-11 20:20:43 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-11 20:20:43 -0800 |
| commit | 427c7fbf937b7c67aa4c9f54d9836015b5545eee (patch) | |
| tree | eff75b9122c148e8828747b3e94891a3d268eab7 | |
| parent | b20cdff82d58e78f7f6b5e3ca77b0dc501849d59 (diff) | |
| parent | a72c92e55f3916cb38923c4b12a0370633c4c9ed (diff) | |
| download | seaweedfs-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.go | 5 |
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 |
