aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/storage/disk_location.go12
1 files changed, 5 insertions, 7 deletions
diff --git a/weed/storage/disk_location.go b/weed/storage/disk_location.go
index 359d0cec2..2d4d120af 100644
--- a/weed/storage/disk_location.go
+++ b/weed/storage/disk_location.go
@@ -99,14 +99,12 @@ func (l *DiskLocation) loadExistingVolume(fileInfo os.FileInfo, needleMapKind Ne
}
// avoid loading one volume more than once
- l.volumesLock.Lock()
- if _, found := l.volumes[vid]; found {
- l.volumesLock.Unlock()
+ l.volumesLock.RLock()
+ _, found := l.volumes[vid]
+ l.volumesLock.RUnlock()
+ if found {
glog.V(1).Infof("loaded volume, %v", vid)
return true
- } else {
- l.volumes[vid] = nil
- l.volumesLock.Unlock()
}
// load the volume
@@ -115,7 +113,7 @@ func (l *DiskLocation) loadExistingVolume(fileInfo os.FileInfo, needleMapKind Ne
glog.V(0).Infof("new volume %s error %s", volumeName, e)
return false
}
-
+
l.SetVolume(vid, v)
size, _, _ := v.FileStat()