anchor.diff:              % This is a current or newer incarnation.
               {ok, false}
       end;
  -check_is_orphan(#state{blobk = BlobK, blacklist = BlackList},
  -                blob, BlobName, Node, Vol) ->
  +check_is_orphan(#state{blobk = BlobK, blacklist = BlackList,
  +                most_overused_node = MostOverused}, blob, BlobName, Node, Vol) ->
       MaxReps = BlobK + ?NUM_EXTRA_REPLICAS,
       % The gc mark/in-use protocol is resumable, but the node loses its
       % in-use knowledge when it goes down.  On reconnect, it might
  
positive.code:     DiskUsage = avg_disk_usage(NodeStats),
      OverusedNodes = find_unstable_nodes(overused, NodeStats, DiskUsage),
      UnderusedNodes = find_unstable_nodes(underused, NodeStats, DiskUsage),
      lager:info("GC: average disk utilization: ~p, "
                 "over utilized nodes: ~p, "
                 "under utilized nodes: ~p",
  
negative.code:                             % Note that Node could belong to the blacklist; we
                              % still record the replica so that we can use it for
                              % re-replication if needed.
                              lager:info("GC: recovering replica of ~p from ~p/~p",
                                         [BlobName, Node, Vol]),
                              NewRecovered = [{Node, Vol} | Recovered],
                              ets:update_element(gc_blobs, BlobName, {3, NewRecovered}),
                              {ok, false}
                      end;
                  {IsPresent, IsRecovered, true} ->
                      {RepNodes, _RepVols} = lists:unzip(Recovered),
                      Usable = find_usable(BlackList, lists:usort(RepNodes ++ PresentNodes)),
                      case {IsPresent orelse IsRecovered, length(Usable) > BlobK} of
                          {_, true} ->
                              % This blob can be deleted since it has more than BlobK
                              % replicas and is located on the most over-utilized node.
                              lager:info("GC: discarding replica of ~p on ~p/~p",
                                         [BlobName, Node, Vol]),
                              {ok, true};
                          {true, false} ->
                              {ok, false};
                          {false, false} ->
                              lager:info("GC: recovering replica of ~p from ~p/~p",
                                         [BlobName, Node, Vol]),
                              NewRecovered = [{Node, Vol} | Recovered],
  