Make KeyValueStore support "ceph osd perf" command

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Fix keyvaluestore fiemap bug

The result of fiemap is wrong and the offset get from
"StripObjectMap::file_to_extents" need to multiply by sequence number

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Extracted RadosXattrIter from librados.cc into independent .h anc .cc files.
This makes this interface usable by clients of librados.

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Fixed missing include of assert.h in RWLock interface

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Fixed usage of rhel_version in spec file : it should have been rhel

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Added const qualifiers for the layout argument of file_to_extents and object_truncate_size

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Completed librados documentation of rados_write_op_cmpxattr and rados_read_op_cmpxattr concerning their error reporting

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Added a striper interface on top of rados called radosstriper.

This interface allows to manipulate striped objects stored in a rados cluster with a standard open/read/write/stat/close/remove API.
Asynchronous APIs are also provided for data transfers and both C and C++ APIs are present.

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Implementation of the radosstriper interface.

The user facing API is implemented in libradosstriper.cc and the backend in RadosStriperImpl.cc.
Details on how the code works are given in a comment at the top of RadosStriperImple.cc

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Added unit test suite for the Rados striping API.

This includes tests for standard io and asynchronous io, similar to what is tested in the rados tests.
In addition, it includes in depth tests of the striping itself.

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Added RPM and debian packaging for libradosstriper, creating a new package called libradosstriper1

Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
Merge branch 'wip-libradosstriper'

https://github.com/ceph/ceph/pull/1186

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Merge pull request #1912 from yuyuyu101/keyvaluestore-sparse-read-bug

Fix keyvaluestore fiemap bug

Reviewed-by: Sage Weil <sage@inktank.com>
Merge pull request #1899 from yuyuyu101/kvstore-osd-perf

Make KeyValueStore support "ceph osd perf" command

Reviewed-by: Sage Weil <sage@inktank.com>
doc: Fixes spelling errors on README

Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@cloudwatt.com>
Merge pull request #1934 from sahid/patch-1

Fix two typos with "dependencies"
OSD: move waiting_for_pg into Session

This way, we can handle pg splits atomically with ms_fast_dispatch.

Signed-off-by: Samuel Just <sam.just@inktank.com>
Merge remote-tracking branches 'origin/wip-7999', 'origin/wip-8396', 'origin/wip-8438' and 'origin/wip-8507' into wip-sam-testing