code: func (plugin *flexVolumePlugin) newUnmounterInternal(volName string, podUID types.UID, mounter mount.Interface, runner exec.Interface) (volume.Unmounter, error) {
  	var metricsProvider volume.MetricsProvider
  	if plugin.capabilities.SupportsMetrics {
  		metricsProvider = volume.NewMetricsStatFS(plugin.host.GetPodVolumeDir(
  			podUID, utilstrings.EscapeQualifiedName(plugin.driverName), volName))
  	} else {
  		metricsProvider = &volume.MetricsNil{}
  	}
  
  	return &flexVolumeUnmounter{
  		flexVolume: &flexVolume{
  			driverName:      plugin.driverName,
  			execPath:        plugin.getExecutable(),
  			mounter:         mounter,
  			plugin:          plugin,
  			podUID:          podUID,
  			volName:         volName,
  			MetricsProvider: metricsProvider,
  		},
  		runner: runner,
  	}, nil
  }
docs: // newUnmounterInternal is the internal unmounter routine to clean the volume.