code: func (s *VolumeStore) Create(ctx context.Context, name, driverName string, createOpts ...opts.CreateOption) (volume.Volume, error) {
  	var cfg opts.CreateConfig
  	for _, o := range createOpts {
  		o(&cfg)
  	}
  
  	name = normalizeVolumeName(name)
  	s.locks.Lock(name)
  	defer s.locks.Unlock(name)
  
  	select {
  	case <-ctx.Done():
  		return nil, ctx.Err()
  	default:
  	}
  
  	v, err := s.create(ctx, name, driverName, cfg.Options, cfg.Labels)
  	if err != nil {
  		if _, ok := err.(*OpErr); ok {
  			return nil, err
  		}
  		return nil, &OpErr{Err: err, Name: name, Op: "create"}
  	}
  
  	s.setNamed(v, cfg.Reference)
  	return v, nil
  }
docs: // Create creates a volume with the given name and driver
  // If the volume needs to be created with a reference to prevent race conditions
  // with volume cleanup, make sure to use the `CreateWithReference` option.