code: func (s *VolumeStore) Find(ctx context.Context, by By) (vols []volume.Volume, warnings []string, err error) {
  	logrus.WithField("ByType", fmt.Sprintf("%T", by)).WithField("ByValue", fmt.Sprintf("%+v", by)).Debug("VolumeStore.Find")
  	switch f := by.(type) {
  	case nil, orCombinator, andCombinator, byDriver, ByReferenced, CustomFilter:
  		warnings, err = s.filter(ctx, &vols, by)
  	case fromList:
  		warnings, err = s.filter(ctx, f.ls, f.by)
  	default:
  		// Really shouldn't be possible, but makes sure that any new By's are added to this check.
  		err = errdefs.InvalidParameter(errors.Errorf("unsupported filter type: %T", f))
  	}
  	if err != nil {
  		return nil, nil, &OpErr{Err: err, Op: "list"}
  	}
  
  	var out []volume.Volume
  
  	for _, v := range vols {
  		name := normalizeVolumeName(v.Name())
  
  		s.locks.Lock(name)
  		storedV, exists := s.getNamed(name)
  		// Note: it's not safe to populate the cache here because the volume may have been
  		// deleted before we acquire a lock on its name
  		if exists && storedV.DriverName() != v.DriverName() {
  			logrus.Warnf("Volume name %s already exists for driver %s, not including volume returned by %s", v.Name(), storedV.DriverName(), v.DriverName())
  			s.locks.Unlock(v.Name())
  			continue
  		}
  
  		out = append(out, v)
  		s.locks.Unlock(v.Name())
  	}
  	return out, warnings, nil
  }
docs: // Find lists volumes filtered by the past in filter.
  // If a driver returns a volume that has name which conflicts with another volume from a different driver,
  // the first volume is chosen and the conflicting volume is dropped.