code: func (d *deviceAllocator) GetNext(existingDevices ExistingDevices) (mountDevice, error) {
  	for _, devicePair := range d.sortByCount() {
  		if _, found := existingDevices[devicePair.deviceName]; !found {
  			return devicePair.deviceName, nil
  		}
  	}
  	return "", fmt.Errorf("no devices are available")
  }
docs: // GetNext gets next available device from the pool, this function assumes that caller
  // holds the necessary lock on deviceAllocator