anchor.diff:  %% @end
   -spec schedule_io_operation(torrent_id(), file_path()) -> ok.
   schedule_io_operation(Directory, RelPath) ->
  -    {ok, DirPid} = await_directory(Directory),
  +    DirPid = await_directory(Directory),
       gen_server:cast(DirPid, {schedule_operation, RelPath}).
   
   %% @doc Check a piece for completion and mark it for correctness
  
positive.code: -spec allocate(torrent_id(), string(), integer()) -> ok.
  allocate(TorrentId, FilePath, BytesToWrite) ->
      ok = schedule_io_operation(TorrentId, FilePath),
      {ok, FilePid} = await_open_file(TorrentId, FilePath),
      ok = etorrent_io_file:allocate(FilePid, BytesToWrite).
  
  piece_sizes(Torrent) ->
  
negative.code: file_sizes(Torrent) ->
      file_path_len(Torrent).
  
  
  directory_name(TorrentID) ->
      {etorrent, TorrentID, directory}.
  
  file_server_name(TorrentID, Path) ->
      {etorrent, TorrentID, Path, file}.
  
  open_server_name(TorrentID, Path) ->
      {etorrent, TorrentID, Path, file, open}.
  
  %% @doc
  %% Register the current process as the directory server for
  %% the given torrent.
  %% @end
  -spec register_directory(torrent_id()) -> true.
  register_directory(TorrentID) ->
      etorrent_utils:register(directory_name(TorrentID)).
  
  %% @end
  %% Register the current process as the file server for the
  