code: func (f *NodeClient) NodeStageVolume(ctx context.Context, req *csipb.NodeStageVolumeRequest, opts ...grpc.CallOption) (*csipb.NodeStageVolumeResponse, error) {
  	if f.nextErr != nil {
  		return nil, f.nextErr
  	}
  
  	if req.GetVolumeId() == "" {
  		return nil, errors.New("missing volume id")
  	}
  	if req.GetStagingTargetPath() == "" {
  		return nil, errors.New("missing staging target path")
  	}
  
  	fsType := ""
  	fsTypes := "block|ext4|xfs|zfs"
  	mounted := req.GetVolumeCapability().GetMount()
  	if mounted != nil {
  		fsType = mounted.GetFsType()
  	}
  	if !strings.Contains(fsTypes, fsType) {
  		return nil, errors.New("invalid fstype")
  	}
  
  	f.nodeStagedVolumes[req.GetVolumeId()] = CSIVolume{
  		Path:          req.GetStagingTargetPath(),
  		VolumeContext: req.GetVolumeContext(),
  	}
  	return &csipb.NodeStageVolumeResponse{}, nil
  }
docs: // NodeStagevolume implements csi method