code: func (m *csiBlockMapper) unpublishVolumeForBlock(ctx context.Context, csi csiClient, publishPath string) error {
  	// Request to unpublish a block volume from publishPath.
  	// Expectation for driver is to remove block volume from the publishPath, by unmounting bind-mounted device file
  	// or deleting device file.
  	// Driver is responsible for deleting publishPath itself.
  	// If driver doesn't implement NodeUnstageVolume, detaching the block volume from the node may be done, here.
  	if err := csi.NodeUnpublishVolume(ctx, m.volumeID, publishPath); err != nil {
  		klog.Error(log("blockMapper.unpublishVolumeForBlock failed: %v", err))
  		return err
  	}
  	klog.V(4).Infof(log("blockMapper.unpublishVolumeForBlock NodeUnpublished successfully [%s]", publishPath))
  
  	return nil
  }
docs: // unpublishVolumeForBlock unpublishes a block volume from publishPath