code: func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error {
  	// Path to mounter binary if containerized mounter is needed. Otherwise, it is set to empty.
  	// All Linux distros are expected to be shipped with a mount utility that a support bind mounts.
  	mounterPath := ""
  	bind, bindOpts, bindRemountOpts := IsBind(options)
  	if bind {
  		err := mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindOpts)
  		if err != nil {
  			return err
  		}
  		return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts)
  	}
  	// The list of filesystems that require containerized mounter on GCI image cluster
  	fsTypesNeedMounter := map[string]struct{}{
  		"nfs":       {},
  		"glusterfs": {},
  		"ceph":      {},
  		"cifs":      {},
  	}
  	if _, ok := fsTypesNeedMounter[fstype]; ok {
  		mounterPath = mounter.mounterPath
  	}
  	return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options)
  }
docs: // Mount mounts source to target as fstype with given options. 'source' and 'fstype' must
  // be an empty string in case it's not required, e.g. for remount, or for auto filesystem
  // type, where kernel handles fstype for you. The mount 'options' is a list of options,
  // currently come from mount(8), e.g. "ro", "remount", "bind", etc. If no more option is
  // required, call Mount with an empty string list or nil.