anchor.diff:  -spec unlink(file_ctx:ctx(), user_ctx:ctx()) ->
       {ok, file_ctx:ctx()} | {error, term()}.
   unlink(FileCtx, UserCtx) ->
  -    FileCtx2 = ensure_not_share_file_ctx(FileCtx),
  +    FileCtx2 = share_to_standard_file_ctx(FileCtx),
       SessId = user_ctx:get_session_id(UserCtx),
       case storage_driver:new_handle(SessId, FileCtx2, false) of
           {undefined, _FileCtx3} ->
  
positive.code:     case TargetParentCtx =/= undefined of
          true ->
              TargetParentCtx2 = file_ctx:assert_not_readonly_storage(TargetParentCtx),
              TargetParentCtx3 = ensure_not_share_file_ctx(TargetParentCtx2),
              % we know target parent uuid, so we can create parent directories with correct mode
              % ensure all target parent directories are created
              {ok, _} = mkdir_deferred(TargetParentCtx3, UserCtx);
  
negative.code: -spec rmdir(file_ctx:ctx(), user_ctx:ctx()) ->
      {ok, file_ctx:ctx()} | {error, term()}.
  rmdir(DirCtx, UserCtx) ->
      DirCtx2 = share_to_standard_file_ctx(DirCtx),
      SessId = user_ctx:get_session_id(UserCtx),
      FileUuid = file_ctx:get_uuid_const(DirCtx2),
      case storage_driver:new_handle(SessId, DirCtx2, false) of
  