docs: public long allocate(int request_size)
      throws IOException
      {
          //System.out.println("*** allocate filename=" + filename + " size=" + request_size);
          if (readOnly) {
              throw (new FileManagerException("Attempt to allocate in read only mode"));
          }
          allocs++;
          request_size = request_size + HDR_SIZE;
          if (request_size <= last_quick_size_block) {
              return allocate_from_ql(request_size);
          } else {
              // round up to nearest multiple of a grain_size
              request_size = (( request_size + grain_size - 1 ) / grain_size) * grain_size;
              return search_ml(request_size);
          }
      }