From 3bb75064fb409dc0a7c9c2431b73e3d3c628b6d8 Mon Sep 17 00:00:00 2001 From: NickrenREN Date: Mon, 12 Dec 2016 18:05:30 +0800 Subject: [PATCH] fix GetVolumeInUse() function Since we just want to get volume name info, each volume name just need to added once. desiredStateOfWorld.GetVolumesToMount() will return volume and pod binding info, if one volume is mounted to several pods, the volume name will be return several times. That is not what we want in this function. We can add a new function to only get the volume name info or judge whether the volume name is added to the desiredVolumesMap array. --- pkg/kubelet/volumemanager/volume_manager.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/kubelet/volumemanager/volume_manager.go b/pkg/kubelet/volumemanager/volume_manager.go index 7b3c0167b61..925e19e9da2 100644 --- a/pkg/kubelet/volumemanager/volume_manager.go +++ b/pkg/kubelet/volumemanager/volume_manager.go @@ -297,8 +297,10 @@ func (vm *volumeManager) GetVolumesInUse() []v1.UniqueVolumeName { for _, volume := range desiredVolumes { if volume.PluginIsAttachable { - desiredVolumesMap[volume.VolumeName] = true - volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName) + if _, exists := desiredVolumesMap[volume.VolumeName]; !exists { + desiredVolumesMap[volume.VolumeName] = true + volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName) + } } }