anchor.diff:          [] ->
               % New blob added after GC/RR started.
               [];
  -        [{_, P, R, noupdate, _}] ->
  +        [{_, P, R, noupdate, _, _}] ->
               usable_locations(S, BlobName, P ++ R, []);
  -        [{_, P, R, {update, NewUrls}, _}] ->
  +        [{_, P, R, {update, NewUrls}, _, _}] ->
               usable_locations(S, BlobName, P ++ R, NewUrls)
       end.
   
  
positive.code:           fun({{BlobName, Node}, {true, Vol, Size}}, _) ->
                    case ets:lookup(gc_blobs, BlobName) of
                        [] ->
                            Entry = {BlobName, [{Node, Vol}], [], noupdate, Size},
                            ets:insert(gc_blobs, Entry);
                        [{_, Present, _, _, _}] ->
                            Acc = [{Node, Vol} | Present],
                            ets:update_element(gc_blobs, BlobName, {2, Acc})
                    end;
  
negative.code:                          U1 / (U1 + F1) =< U2 / (U2 + F2)
                   end, NS),
      ets:foldl(
        fun({BlobName, Present, Recovered, _Update, Size, _Rebalance}, NodeStats) ->
                PresentNodes = [N || {N, _V} <- Present],
                SafePresent = find_usable(BL, PresentNodes),
                SafeRecovered = [{N, V} || {N, V} <- Recovered, not lists:member(N, BL)],
  