anchor.diff:  
       FileInfo = create_file_tree(UserId, ParentGuid, CreationProvider, FileDesc),
       await_sync(SyncProviders, UserId, FileInfo),
  +    await_parent_links_sync(SyncProviders, UserId, ParentGuid, FileInfo),
   
       FileInfo.
   
  
positive.code: 
  
  %% @private
  -spec await_file_links_sync(
      [oct_background:entity_selector()], od_user:id(), file_id:file_guid(), [file_id:file_guid()]
  ) ->
      ok | no_return().
  await_file_links_sync(SyncProviders, UserId, DirGuid, ExpChildGuids) ->
      lists:foreach(fun(SyncProvider) ->
          SessId = oct_background:get_user_session_id(UserId, SyncProvider),
          SyncNode = lists_utils:random_element(oct_background:get_provider_nodes(SyncProvider)),
  
negative.code: 
  
  %% @private
  -spec await_parent_links_sync(
      [oct_background:entity_selector()], od_user:id(), file_id:file_guid(), object()
  ) ->
      ok | no_return().
  await_parent_links_sync(SyncProviders, UserId, ParentGuid, #object{
      guid = ChildGuid,
      name = ChildName
  }) ->
      lists:foreach(fun(SyncProvider) ->
          SessId = oct_background:get_user_session_id(UserId, SyncProvider),
          SyncNode = lists_utils:random_element(oct_background:get_provider_nodes(SyncProvider)),
          ?assertMatch(
              {ok, #file_attr{guid = ChildGuid}},
              lfm_proxy:get_child_attr(SyncNode, SessId, ParentGuid, ChildName),
              ?ATTEMPTS
          )
      end, SyncProviders).
  
  
  %% @private
  -spec create_file(node(), session:id(), file_id:file_guid(), file_meta:name(), file_meta:mode()) ->
      {ok, file_id:file_guid()} | no_return().
  create_file(Node, SessId, ParentGuid, FileName, FileMode) ->
  