code: func wrapAttachError(err error, disk *awsDisk, instance string) error {
  	if awsError, ok := err.(awserr.Error); ok {
  		if awsError.Code() == "VolumeInUse" {
  			info, err := disk.describeVolume()
  			if err != nil {
  				klog.Errorf("Error describing volume %q: %q", disk.awsID, err)
  			} else {
  				for _, a := range info.Attachments {
  					if disk.awsID != EBSVolumeID(aws.StringValue(a.VolumeId)) {
  						klog.Warningf("Expected to get attachment info of volume %q but instead got info of %q", disk.awsID, aws.StringValue(a.VolumeId))
  					} else if aws.StringValue(a.State) == "attached" {
  						return fmt.Errorf("Error attaching EBS volume %q to instance %q: %q. The volume is currently attached to instance %q", disk.awsID, instance, awsError, aws.StringValue(a.InstanceId))
  					}
  				}
  			}
  		}
  	}
  	return fmt.Errorf("Error attaching EBS volume %q to instance %q: %q", disk.awsID, instance, err)
  }
docs: // wrapAttachError wraps the error returned by an AttachVolume request with
  // additional information, if needed and possible.