anchor.diff:          {ok, File} ->
               SourcePathTokens = filename:split(SourcePath),
               TargetPathTokens = filename:split(CanonicalTargetPath),
  -            {ok, OldPath} = file_meta:gen_path(File),
  +            {ok, OldPath} = fslogic_path:gen_path(File, SessId),
               OldTokens = filename:split(OldPath),
               NewTokens = TargetPathTokens ++ lists:sublist(OldTokens, length(SourcePathTokens) + 1, length(OldTokens)),
               NewPath = fslogic_path:join(NewTokens),
  
positive.code: %%--------------------------------------------------------------------
  -spec rename_interspace(fslogic_worker:ctx(), fslogic_worker:file(),
      file_meta:path()) -> #fuse_response{} | no_return().
  rename_interspace(CTX, SourceEntry, LogicalTargetPath) ->
      {ok, SourcePath} = file_meta:gen_path(SourceEntry),
      {ok, SourceParent} = file_meta:get_parent(SourceEntry),
      CanonicalTargetPath = get_canonical_path(CTX, LogicalTargetPath),
      {_, TargetParentPath} = fslogic_path:basename_and_parent(CanonicalTargetPath),
  
negative.code:             for_each_child_file(SourceEntry,
                  fun
                      (#document{value = #file_meta{type = ?REGULAR_FILE_TYPE}} = File) ->
                          %% TODO: get all snapshots:
                          FileSnapshots = [File],
                          lists:foreach(
  