anchor.diff:          true ->
               {reply, ok, State};
           false ->
  -            update_vbucket_states(State2),
  +            change_vbucket_states(State2),
               {reply, ok, State2}
       end;
   
  
positive.code: reset_master_vbucket(Bucket) ->
      gen_server:call(server(Bucket), reset_master_vbucket, infinity).
  
  csv_call(Call, Args) ->
      ?views_debug("~nCalling couch_set_view:~p(~p)", [Call, Args]),
      try
          {__Time, __Result} = timer:tc(couch_set_view, Call, Args),
  
          ?views_debug("~ncouch_set_view:~p call returned ~p in ~bms",
                       [Call, __Result, __Time div 1000]),
          __Result
      catch
          __T:__E ->
              ?views_debug("~ncouch_set_view:~p(~p) raised ~p:~p",
                           [Call, Args, __T, __E]),
  
              __Stack = erlang:get_stacktrace(),
              erlang:raise(__T, __E, __Stack)
      end.
  
  compute_index_states(WantedStates, RebalanceStates, ExistingVBuckets) ->
      AllVBs = lists:seq(0, erlang:length(WantedStates)-1),
  
negative.code:                                                      usable_vbuckets = UsableVBuckets,
                                                       rebalance_states = RebalanceStates} = State) ->
      [] = RebalanceStates,
      ?log_info("Deleting vbucket ~p from all indexes", [VBucket]),
      SetName = list_to_binary(Bucket),
      do_apply_vbucket_states(SetName, [], [], [VBucket], [], [VBucket], [], [], State),
      {reply, ok, State#state{usable_vbuckets = sets:del_element(VBucket, UsableVBuckets)}};
  handle_call({delete_vbucket, VBucket}, _From, #state{usable_vbuckets = UsableVBuckets,
                                                       wanted_states = WantedStates,
  