anchor.diff:      riak_cs_dtrace:dt_wm_entry(?MODULE, <<"init">>),
       {ok, #ping_context{}}.
   
  --spec service_available(term(), term()) -> {boolean(), term(), term()}.
  +-spec service_available(#wm_reqdata{}, #context{}) -> {boolean(), #wm_reqdata{}, #context{}}.
   service_available(RD, Ctx) ->
       riak_cs_dtrace:dt_wm_entry(?MODULE, <<"service_available">>),
  -    case poolboy:checkout(request_pool, true, ping_timeout()) of
  -        full ->
  -            case riak_cs_riakc_pool_worker:start_link([]) of
  -                {ok, Pid} ->
  -                    UpdCtx = Ctx#ping_context{riakc_pid=Pid,
  -                                              pool_pid=false};
  -                {error, _} ->
  -                    Pid = undefined,
  -                    UpdCtx = Ctx
  -            end;
  -        Pid ->
  -            UpdCtx = Ctx#ping_context{riakc_pid=Pid}
  -    end,
  -    case (catch riakc_pb_socket:ping(Pid, ping_timeout())) of
  -        pong ->
  -            Available = true;
  -        _ ->
  -            Available = false
  -    end,
  +    {Available, UpdCtx} = riak_ping(get_connection_pid(), Ctx),
       {Available, RD, UpdCtx}.
   
   -spec allowed_methods(term(), term()) -> {[atom()], term(), term()}.
  
positive.code:         {ok, Timeout} ->
              Timeout
      end.
  
negative.code:     riak_cs_dtrace:dt_wm_entry(?MODULE, <<"finish_request">>, [0], []),
      {true, RD, Ctx};
  finish_request(RD, Ctx=#ping_context{riakc_pid=RiakPid,
                                       pool_pid=PoolPid}) ->
      riak_cs_dtrace:dt_wm_entry(?MODULE, <<"finish_request">>, [1], []),
      case PoolPid of
          true ->
  