diff --git a/pkg/volume/util/operationexecutor/operation_generator.go b/pkg/volume/util/operationexecutor/operation_generator.go index 9d5c937d953..2707f703448 100644 --- a/pkg/volume/util/operationexecutor/operation_generator.go +++ b/pkg/volume/util/operationexecutor/operation_generator.go @@ -290,6 +290,15 @@ func (og *operationGenerator) GenerateAttachVolumeFunc( return volumetypes.NewOperationContext(eventErr, detailedErr, migrated) } + // Update actual state of world + addVolumeNodeErr := actualStateOfWorld.MarkVolumeAsAttached( + logger, volumeToAttach.VolumeName, volumeToAttach.VolumeSpec, volumeToAttach.NodeName, devicePath) + if addVolumeNodeErr != nil { + // On failure, return error. Caller will log and retry. + eventErr, detailedErr := volumeToAttach.GenerateError("AttachVolume.MarkVolumeAsAttached failed", addVolumeNodeErr) + return volumetypes.NewOperationContext(eventErr, detailedErr, migrated) + } + // Successful attach event is useful for user debugging simpleMsg, _ := volumeToAttach.GenerateMsg("AttachVolume.Attach succeeded", "") for _, pod := range volumeToAttach.ScheduledPods { @@ -297,15 +306,6 @@ func (og *operationGenerator) GenerateAttachVolumeFunc( } klog.Info(volumeToAttach.GenerateMsgDetailed("AttachVolume.Attach succeeded", "")) - // Update actual state of world - addVolumeNodeErr := actualStateOfWorld.MarkVolumeAsAttached( - logger, v1.UniqueVolumeName(""), volumeToAttach.VolumeSpec, volumeToAttach.NodeName, devicePath) - if addVolumeNodeErr != nil { - // On failure, return error. Caller will log and retry. - eventErr, detailedErr := volumeToAttach.GenerateError("AttachVolume.MarkVolumeAsAttached failed", addVolumeNodeErr) - return volumetypes.NewOperationContext(eventErr, detailedErr, migrated) - } - return volumetypes.NewOperationContext(nil, nil, migrated) }