Merge pull request #21624 from LK4D4/fix_store_races

volume/store: fix couple of races with accessing maps
This commit is contained in:
Vincent Demeester 2016-03-30 14:07:37 +02:00
commit 0bdcbe5dd2
1 changed files with 6 additions and 1 deletions

View File

@ -267,7 +267,9 @@ func (s *VolumeStore) create(name, driverName string, opts, labels map[string]st
if err != nil {
return nil, err
}
s.globalLock.Lock()
s.labels[name] = labels
s.globalLock.Unlock()
if s.db != nil {
metadata := &volumeMetadata{
@ -362,7 +364,10 @@ func (s *VolumeStore) getVolume(name string) (volume.Volume, error) {
}
logrus.Debugf("Getting volume reference for name: %s", name)
if v, exists := s.names[name]; exists {
s.globalLock.Lock()
v, exists := s.names[name]
s.globalLock.Unlock()
if exists {
vd, err := volumedrivers.GetDriver(v.DriverName())
if err != nil {
return nil, err