code: public static Closeable mount(VirtualFile mountPoint, FileSystem fileSystem) throws IOException {
          final VirtualFile parent = mountPoint.getParent();
          if (parent == null) {
              throw VFSMessages.MESSAGES.rootFileSystemAlreadyMounted();
          }
          final String name = mountPoint.getName();
          final Mount mount = new Mount(fileSystem, mountPoint);
          final ConcurrentMap<VirtualFile, Map<String, Mount>> mounts = VFS.mounts;
          for (; ; ) {
              Map<String, Mount> childMountMap = mounts.get(parent);
              Map<String, Mount> newMap;
              if (childMountMap == null) {
                  childMountMap = mounts.putIfAbsent(parent, Collections.singletonMap(name, mount));
                  if (childMountMap == null) {
                      return mount;
                  }
              }
              newMap = new HashMap<String, Mount>(childMountMap);
              if (newMap.put(name, mount) != null) {
                  throw VFSMessages.MESSAGES.fileSystemAlreadyMountedAtMountPoint(mountPoint);
              }
              if (mounts.replace(parent, childMountMap, newMap)) {
                  VFSLogger.ROOT_LOGGER.tracef("Mounted filesystem %s on mount point %s", fileSystem, mountPoint);
                  return mount;
              }
          }
      }
docs: Mount a filesystem on a mount point in the VFS.  The mount point is any valid file name, existent or non-existent.
  If a relative path is given, it will be treated as relative to the VFS root.
  
  @param mountPoint the mount point
  @param fileSystem the file system to mount
  @return a handle which can be used to unmount the filesystem
  @throws IOException if an I/O error occurs, such as a filesystem already being mounted at the given mount point