code: @NotNull
      public File createFile(@NotNull final Transaction txn, final long fileDescriptor, @NotNull final String path) {
          while (true) {
              long current = fileDescriptorSequence.get();
              long next = Math.max(fileDescriptor + 1, current);
              if (fileDescriptorSequence.compareAndSet(current, next))
                  break;
          }
          return doCreateFile(txn, fileDescriptor, path);
      }
docs: Creates new file inside specified {@linkplain Transaction} with specified file descriptor and path and returns
  the {@linkplain File} instance.
  
  @param txn            {@linkplain Transaction} instance
  @param fileDescriptor file descriptor
  @param path           file path
  @return new {@linkplain File}
  @throws FileExistsException if a {@linkplain File} with specified path already exists
  @see #createFile(Transaction, String)
  @see File
  @see File#getDescriptor()