anchor.diff:                                     {raw, ReqId, self()},
                                      riak_kv_vnode_master),
       wait_for_vnode_status_results(PrefLists, ReqId, []).
  +
  +%% @doc Repair the given `Partition'.
  +-spec repair(partition()) ->
  +                    {ok, Pairs::[{partition(), node()}]} |
  +                    {down, Down::[{partition(), node()}]}.
  +repair(Partition) ->
  +    Service = riak_kv,
  +    MP = {riak_kv_vnode, Partition},
  +    FilterModFun = {?MODULE, repair_filter},
  +    riak_core_vnode_manager:repair(Service, MP, FilterModFun).
  +
  +%% @doc Get the status of the repair process for the given `Partition'.
  +-spec repair_status(partition()) -> no_repair | repair_in_progress.
  +repair_status(Partition) ->
  +    riak_core_vnode_manager:repair_status({riak_kv_vnode, Partition}).
  +
  +%% @doc Given a `Target' partition generate a `Filter' fun to use
  +%%      during partition repair.
  +-spec repair_filter(partition()) -> Filter::function().
  +repair_filter(Target) ->
  +    {ok, Ring} = riak_core_ring_manager:get_my_ring(),
  +    CH = element(4, Ring),
  +    NValMap = [{riak_core_bucket:name(B), riak_core_bucket:n_val(B)} ||
  +                  B <- riak_core_bucket:get_buckets(Ring)],
  +    RangeMap = riak_core_repair:gen_range_map(Target, CH, NValMap),
  +    DefaultN = riak_core_bucket:n_val(riak_core_config:default_bucket_props()),
  +    Default = riak_core_repair:gen_range(Target, CH, DefaultN),
  +    RangeFun = riak_core_repair:gen_range_fun(RangeMap, Default),
  +    fun({Bucket, _Key}=BKey) ->
  +            Hash = riak_core_util:chash_key(BKey),
  +            case RangeFun(Bucket) of
  +                {nowrap, GTE, LTE} ->
  +                    Hash >= GTE andalso Hash =< LTE;
  +                {wrap, GTE, LTE} ->
  +                    Hash >= GTE orelse Hash =< LTE
  +            end
  +    end.
  +
   
   %% VNode callbacks
   
  
positive.code:                   is_index=false :: boolean() %% set if the b/end supports indexes
                   }).
  
  %% TODO: add -specs to all public API funcs, this module seems fragile?
  
  %% API
  start_vnode(I) ->
      riak_core_vnode_master:get_vnode_pid(I, riak_kv_vnode).
  
negative.code:          fold/3,
           get_vclocks/2,
           vnode_status/1,
           ack_keys/1,
           repair/1,
           repair_status/1,
           repair_filter/1]).
  
  %% riak_core_vnode API
  -export([init/1,
  