anchor.diff:  
   -include("config.hrl").
   -include("ddfs.hrl").
  +-include("ddfs_tag.hrl").
   
   -type node_info() :: {node(), {non_neg_integer(), non_neg_integer()}}.
   -record(state, {tags      = gb_trees:empty() :: gb_tree(),
  
positive.code:             {P, Tags}
      end.
  
  -spec do_tag_request(term(), nonempty_string() | binary(), replyto(), state()) ->
                              state().
  do_tag_request(M, Tag, From, #state{tags = Tags, tag_cache = Cache} = S) ->
      {Pid, TagsN} = get_tag_pid(Tag, Tags, Cache),
  
negative.code:     S#state{tags = TagsN,
              tag_cache = Cache =/= false andalso gb_sets:add(Tag, Cache)}.
  
  -spec do_tag_notify(term(), tagname(), state()) -> state().
  do_tag_notify(M, Tag, #state{tags = Tags, tag_cache = Cache} = S) ->
      {Pid, TagsN} = get_tag_pid(Tag, Tags, Cache),
      gen_server:cast(Pid, {notify, M}),
  