Merge pull request #19779 from sillyousu/19777-fix-volume-store-dereference-deadlock

fix dead lock in volume store dereference
Upstream-commit: c17d4b4ebb7f15b4fcb32d191ea3306d13f15d06
Component: engine
This commit is contained in:
Brian Goff
2016-01-27 09:28:11 -05:00
+1 -1
View File
@@ -293,6 +293,7 @@ func (s *VolumeStore) Dereference(v volume.Volume, ref string) {
defer s.locks.Unlock(v.Name())
s.globalLock.Lock()
defer s.globalLock.Unlock()
refs, exists := s.refs[v.Name()]
if !exists {
return
@@ -303,7 +304,6 @@ func (s *VolumeStore) Dereference(v volume.Volume, ref string) {
s.refs[v.Name()] = append(s.refs[v.Name()][:i], s.refs[v.Name()][i+1:]...)
}
}
s.globalLock.Unlock()
}
// Refs gets the current list of refs for the given volume