libradosstriper_format.patch
src/libradosstriper/RadosStriperImpl.cc | ||
---|---|---|
12 | 12 |
* |
13 | 13 |
*/ |
14 | 14 | |
15 |
#include <boost/algorithm/string/replace.hpp> |
|
16 | ||
15 | 17 |
#include "libradosstriper/RadosStriperImpl.h" |
16 | 18 | |
17 | 19 |
#include <errno.h> |
... | ... | |
466 | 468 |
// get list of extents to be read from |
467 | 469 |
vector<ObjectExtent> *extents = new vector<ObjectExtent>(); |
468 | 470 |
if (read_len > 0) { |
469 |
std::string format = soid + RADOS_OBJECT_EXTENSION_FORMAT; |
|
471 |
std::string format = soid; |
|
472 |
boost::replace_all(format, "%", "%%"); |
|
473 |
format += RADOS_OBJECT_EXTENSION_FORMAT; |
|
470 | 474 |
file_layout_t l; |
471 | 475 |
l.from_legacy(layout); |
472 | 476 |
Striper::file_to_extents(cct(), format.c_str(), &l, off, read_len, |
... | ... | |
772 | 776 |
{ |
773 | 777 |
// get list of extents to be written to |
774 | 778 |
vector<ObjectExtent> extents; |
775 |
std::string format = soid + RADOS_OBJECT_EXTENSION_FORMAT; |
|
779 |
std::string format = soid; |
|
780 |
boost::replace_all(format, "%", "%%"); |
|
781 |
format += RADOS_OBJECT_EXTENSION_FORMAT; |
|
776 | 782 |
file_layout_t l; |
777 | 783 |
l.from_legacy(layout); |
778 | 784 |
Striper::file_to_extents(cct(), format.c_str(), &l, off, len, 0, extents); |