code: func (s *VolumeStore) purge(ctx context.Context, name string) error {
  	s.globalLock.Lock()
  	defer s.globalLock.Unlock()
  
  	select {
  	case <-ctx.Done():
  		return ctx.Err()
  	default:
  	}
  
  	v, exists := s.names[name]
  	if exists {
  		driverName := v.DriverName()
  		if _, err := s.drivers.ReleaseDriver(driverName); err != nil {
  			logrus.WithError(err).WithField("driver", driverName).Error("Error releasing reference to volume driver")
  		}
  	}
  	if err := s.removeMeta(name); err != nil {
  		logrus.Errorf("Error removing volume metadata for volume %q: %v", name, err)
  	}
  	delete(s.names, name)
  	delete(s.refs, name)
  	delete(s.labels, name)
  	delete(s.options, name)
  	return nil
  }
docs: // purge allows the cleanup of internal data on docker in case
  // the internal data is out of sync with volumes driver plugins.