Work around an apparent binding bug (GCC 4.8).

A reference to h->seq passed to std::pair ostensibly could not bind
because the header structure is packed.  At first this looked like
a more general unaligned access problem, but the only location the
compiler rejects is a false positive.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Convert ConnectionRef explicitly to bool.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Add required spacing after string literals (PRIu64).

The common formatting for these 64bit types is not C++ 2011
clean.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/common/perf_counters.cc
Remove some not-resolving make_pair() invocations.

There's nothing wrong with make_pair(), but there is some type
resolution issue in these instances, at least with GCC 4.8.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
test: fix make_pair() for c++11

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
os: add prototype KineticStore

Implement the KeyValueDB interface using libkinetic_client,
and allow it to be configured as the backend for the KeyValueStore,
running the entire OSD on it.

This prototype implementation has no transaction safety, and is
only suitable as a proof of concept. Since the libkinetic_client
API does not provide reverse iteration over keys without also reading
the value off disk, it implements iterators in a very slow but correct way.
These are used heavily by the KeyValueDB callers, so this is a bottleneck
in performance.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Merge pull request #2091 from ceph/wip-kinetic-os

prototype kinetic osd backend

Reviewed-by: Sage Weil <sage@redhat.com>