diff --git a/internal/csi-addons/rbd/volumegroup.go b/internal/csi-addons/rbd/volumegroup.go index bf0b817a3389..7075551e3e91 100644 --- a/internal/csi-addons/rbd/volumegroup.go +++ b/internal/csi-addons/rbd/volumegroup.go @@ -87,6 +87,12 @@ func (vs *VolumeGroupServer) CreateVolumeGroup( // resolve all volumes volumes := make([]types.Volume, len(req.GetVolumeIds())) + defer func() { + // Destroy all volumes at last + for _, vol := range volumes { + vol.Destroy(ctx) + } + }() for i, id := range req.GetVolumeIds() { vol, err := mgr.GetVolumeByID(ctx, id) if err != nil { @@ -97,9 +103,6 @@ func (vs *VolumeGroupServer) CreateVolumeGroup( req.GetName(), err.Error()) } - - //nolint:gocritic // need to call .Destroy() for all volumes - defer vol.Destroy(ctx) volumes[i] = vol } @@ -343,6 +346,12 @@ func (vs *VolumeGroupServer) ModifyVolumeGroupMembership( // resolve all volumes volumes := make([]types.Volume, len(toAdd)) + defer func() { + // Destroy all volumes at last + for _, vol := range volumes { + vol.Destroy(ctx) + } + }() for i, id := range toAdd { var vol types.Volume vol, err = mgr.GetVolumeByID(ctx, id) @@ -353,9 +362,6 @@ func (vs *VolumeGroupServer) ModifyVolumeGroupMembership( id, err) } - - //nolint:gocritic // need to call .Destroy() for all volumes - defer vol.Destroy(ctx) volumes[i] = vol }