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>