anchor.diff:  
   mark_backfillness(#state{had_backfill = HadBF} = State,
                     Value) when is_boolean(Value) ->
  -    #had_backfill{value = undefined,
  -                  waiters = Waiters} = HadBF,
  -    NewBF = #had_backfill{value = Value,
  -                          waiters = []},
  -    [gen_server:reply(From, Value)
  -     || From <- Waiters],
  +    NewBF = HadBF#had_backfill{value = Value,
  +                               backfill_opaque = State#state.last_sent_seqno},
       State#state{had_backfill = NewBF}.
   
   %% @doc Process a packet from the upstream server.
  
positive.code: %% send either indication of backfill (initial stream opaque message)
  %% or or indication of no backfill (checkpoint start message) pretty
  %% much immediately.
  had_backfill(Pid) ->
      gen_server:call(Pid, had_backfill).
  
  %%
  %% Internal functions
  
negative.code:             complete_old_vb_filter_change(State1)
      end;
  handle_call(had_backfill, From, #state{had_backfill = HadBF} = State) ->
      #had_backfill{value = Value,
                    backfill_opaque = BFOpaque} = HadBF,
      case Value =/= undefined andalso BFOpaque =:= undefined of
          true ->
              {reply, Value, State};
          false ->
              OldWaiters = HadBF#had_backfill.waiters,
              NewBF = HadBF#had_backfill{waiters = [From | OldWaiters]},
              ?rebalance_debug("Suspended had_backfill waiter~n~p", [NewBF]),
              {noreply, State#state{had_backfill = NewBF}}
      end;
  handle_call(_Req, _From, State) ->
      {reply, unhandled, State}.
  