anchor.diff:      SpaceId = oct_background:get_space_id(space1),
       SpaceGuid = fslogic_uuid:spaceid_to_space_dir_guid(SpaceId),
       DirName = ?DIR_NAME(),
  -    ProtectionFlags = ?RAND_PROTECTION_FLAGS(),
  +    ProtectionFlags = ?METADATA_PROTECTION,
       {ok, DirGuid} = lfm_proxy:mkdir(P1Node, UserSessIdP1, SpaceGuid, DirName, ?DEFAULT_DIR_PERMS),
  +    SymLinkName = <<DirName/binary, <<"_sym_link">>/binary>>,
  +    LinkPath = filename:join(["/", oct_background:get_space_name(space1), SymLinkName]),
       LinkTarget = filename:join(["/", oct_background:get_space_name(space1), DirName]),
  -    LinkPath = filename:join(["/", oct_background:get_space_name(space1), DirName]),
  -    {ok, #file_attr{guid = LinkGuid}} = lfm_proxy:make_symlink(P1Node, UserSessIdP1, {guid, DirGuid}, DirName, LinkTarget),
  +    {ok, #file_attr{guid = LinkGuid}} = lfm_proxy:make_symlink(P1Node, UserSessIdP1, LinkPath, LinkTarget),
       {ok, DatasetId} = ?assertMatch({ok, _}, lfm_proxy:establish_dataset(P1Node, UserSessIdP1, {guid, LinkGuid}, ProtectionFlags)),
       ?assertAttachedDataset(P1Node, UserSessIdP1, DatasetId, LinkGuid, undefined, ProtectionFlags),
       ?assertDatasetMembership(P1Node, UserSessIdP1, LinkGuid, ?DIRECT_DATASET_MEMBERSHIP, ProtectionFlags),
       ?assertFileEffDatasetSummary(P1Node, UserSessIdP1, LinkGuid, DatasetId, [], ProtectionFlags),
       ?assertFileEffDatasetSummary(P1Node, UserSessIdP1, DirGuid, undefined, [], ?no_flags_mask),
       % delete directory, dataset should stay attached
  -    lfm_proxy:unlink(P1Node, UserSessIdP1, {guid, DirGuid}),
  +    ok = lfm_proxy:unlink(P1Node, UserSessIdP1, {guid, DirGuid}),
       ?assertAttachedDataset(P1Node, UserSessIdP1, DatasetId, LinkGuid, undefined, ProtectionFlags),
       ?assertDatasetMembership(P1Node, UserSessIdP1, LinkGuid, ?DIRECT_DATASET_MEMBERSHIP, ProtectionFlags),
       ?assertFileEffDatasetSummary(P1Node, UserSessIdP1, LinkGuid, DatasetId, [], ProtectionFlags).
  
positive.code:     DirName = ?DIR_NAME(),
      ProtectionFlags = ?RAND_PROTECTION_FLAGS(),
      {ok, DirGuid} = lfm_proxy:mkdir(P1Node, UserSessIdP1, SpaceGuid, DirName, ?DEFAULT_DIR_PERMS),
      LinkTarget = filename:join(["/", oct_background:get_space_name(space1), DirName]),
      {ok, #file_attr{guid = LinkGuid}} = lfm_proxy:make_symlink(P1Node, UserSessIdP1, {guid, DirGuid}, DirName, LinkTarget),
      {ok, DatasetId} = ?assertMatch({ok, _}, lfm_proxy:establish_dataset(P1Node, UserSessIdP1, {guid, LinkGuid}, ProtectionFlags)),
      ?assertAttachedDataset(P1Node, UserSessIdP1, DatasetId, LinkGuid, undefined, ProtectionFlags),
      ?assertDatasetMembership(P1Node, UserSessIdP1, LinkGuid, ?DIRECT_DATASET_MEMBERSHIP, ProtectionFlags),
  
negative.code:     SpaceId = oct_background:get_space_id(space1),
      SpaceGuid = fslogic_uuid:spaceid_to_space_dir_guid(SpaceId),
      FileName = ?FILE_NAME(),
      ProtectionFlags = ?METADATA_PROTECTION,
      {ok, FileGuid} = lfm_proxy:create(P1Node, UserSessIdP1, SpaceGuid, FileName, ?DEFAULT_DIR_PERMS),
      HardLinkName = <<FileName/binary, <<"_hard_link">>/binary>>,
      LinkPath = filename:join(["/", oct_background:get_space_name(space1), HardLinkName]),
  