From: Jason Dillaman Date: Fri, 9 Oct 2015 16:59:39 +0000 (-0400) Subject: librados: restored pre-infernalis API compatibility X-Git-Tag: v9.2.0~15^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6eca7d08893abbe41f7fa6b2834fb05e84be572b;p=ceph.git librados: restored pre-infernalis API compatibility Fixes: #13429 Signed-off-by: Jason Dillaman --- diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index 5260a23cdf71..b92a94f17345 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -422,7 +422,9 @@ namespace librados * @param src_fadvise_flags the fadvise flags for source object */ void copy_from(const std::string& src, const IoCtx& src_ioctx, - uint64_t src_version, uint32_t src_fadvise_flags); + uint64_t src_version); + void copy_from2(const std::string& src, const IoCtx& src_ioctx, + uint64_t src_version, uint32_t src_fadvise_flags); /** * undirty an object @@ -775,10 +777,12 @@ namespace librados /// Start enumerating objects for a pool - NObjectIterator nobjects_begin(const bufferlist &filter=bufferlist()); + NObjectIterator nobjects_begin(); + NObjectIterator nobjects_begin(const bufferlist &filter); /// Start enumerating objects for a pool starting from a hash position + NObjectIterator nobjects_begin(uint32_t start_hash_position); NObjectIterator nobjects_begin(uint32_t start_hash_position, - const bufferlist &filter=bufferlist()); + const bufferlist &filter); /// Iterator indicating the end of a pool const NObjectIterator& nobjects_end() const; diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 52445ad4dcb3..591438d934c4 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -419,9 +419,16 @@ void librados::ObjectWriteOperation::omap_rm_keys( } void librados::ObjectWriteOperation::copy_from(const std::string& src, - const IoCtx& src_ioctx, - uint64_t src_version, - uint32_t src_fadvise_flags) + const IoCtx& src_ioctx, + uint64_t src_version) +{ + copy_from2(src, src_ioctx, src_version, 0); +} + +void librados::ObjectWriteOperation::copy_from2(const std::string& src, + const IoCtx& src_ioctx, + uint64_t src_version, + uint32_t src_fadvise_flags) { ::ObjectOperation *o = (::ObjectOperation *)impl; o->copy_from(object_t(src), src_ioctx.io_ctx_impl->snap_seq, @@ -1554,6 +1561,12 @@ int librados::IoCtx::list_lockers(const std::string &oid, const std::string &nam return tmp_lockers.size(); } +librados::NObjectIterator librados::IoCtx::nobjects_begin() +{ + bufferlist bl; + return nobjects_begin(bl); +} + librados::NObjectIterator librados::IoCtx::nobjects_begin( const bufferlist &filter) { @@ -1567,6 +1580,12 @@ librados::NObjectIterator librados::IoCtx::nobjects_begin( return iter; } +librados::NObjectIterator librados::IoCtx::nobjects_begin(uint32_t pos) +{ + bufferlist bl; + return nobjects_begin(pos, bl); +} + librados::NObjectIterator librados::IoCtx::nobjects_begin( uint32_t pos, const bufferlist &filter) { diff --git a/src/test/librados/misc.cc b/src/test/librados/misc.cc index 0ca47a4a8955..4adaa6bf163f 100644 --- a/src/test/librados/misc.cc +++ b/src/test/librados/misc.cc @@ -610,18 +610,18 @@ TEST_F(LibRadosMiscPP, CopyPP) { { // pass future version ObjectWriteOperation op; - op.copy_from("foo", ioctx, uv + 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); + op.copy_from2("foo", ioctx, uv + 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); ASSERT_EQ(-EOVERFLOW, ioctx.operate("foo.copy", &op)); } { // pass old version ObjectWriteOperation op; - op.copy_from("foo", ioctx, uv - 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); + op.copy_from2("foo", ioctx, uv - 1, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); ASSERT_EQ(-ERANGE, ioctx.operate("foo.copy", &op)); } { ObjectWriteOperation op; - op.copy_from("foo", ioctx, uv, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); + op.copy_from2("foo", ioctx, uv, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); ASSERT_EQ(0, ioctx.operate("foo.copy", &op)); bufferlist bl2, x2; @@ -634,7 +634,7 @@ TEST_F(LibRadosMiscPP, CopyPP) { // small object without a version { ObjectWriteOperation op; - op.copy_from("foo", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); + op.copy_from2("foo", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_DONTNEED); ASSERT_EQ(0, ioctx.operate("foo.copy2", &op)); bufferlist bl2, x2; @@ -655,7 +655,7 @@ TEST_F(LibRadosMiscPP, CopyPP) { { ObjectWriteOperation op; - op.copy_from("big", ioctx, ioctx.get_last_version(), LIBRADOS_OP_FLAG_FADVISE_DONTNEED); + op.copy_from2("big", ioctx, ioctx.get_last_version(), LIBRADOS_OP_FLAG_FADVISE_DONTNEED); ASSERT_EQ(0, ioctx.operate("big.copy", &op)); bufferlist bl2, x2; @@ -667,7 +667,7 @@ TEST_F(LibRadosMiscPP, CopyPP) { { ObjectWriteOperation op; - op.copy_from("big", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL); + op.copy_from2("big", ioctx, 0, LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL); ASSERT_EQ(0, ioctx.operate("big.copy2", &op)); bufferlist bl2, x2; @@ -726,7 +726,7 @@ TEST_F(LibRadosTwoPoolsECPP, CopyFrom) { version_t uv = src_ioctx.get_last_version(); ObjectWriteOperation op; - op.copy_from("foo", src_ioctx, uv, 0); + op.copy_from("foo", src_ioctx, uv); ASSERT_EQ(-EOPNOTSUPP, ioctx.operate("foo.copy", &op)); } @@ -783,25 +783,25 @@ TEST_F(LibRadosMiscPP, CopyScrubPP) { { ObjectWriteOperation op; - op.copy_from("small", ioctx, 0, 0); + op.copy_from("small", ioctx, 0); ASSERT_EQ(0, ioctx.operate("small.copy", &op)); } { ObjectWriteOperation op; - op.copy_from("big", ioctx, 0, 0); + op.copy_from("big", ioctx, 0); ASSERT_EQ(0, ioctx.operate("big.copy", &op)); } { ObjectWriteOperation op; - op.copy_from("big2", ioctx, 0, 0); + op.copy_from("big2", ioctx, 0); ASSERT_EQ(0, ioctx.operate("big2.copy", &op)); } { ObjectWriteOperation op; - op.copy_from("big3", ioctx, 0, 0); + op.copy_from("big3", ioctx, 0); ASSERT_EQ(0, ioctx.operate("big3.copy", &op)); } diff --git a/src/test/osd/RadosModel.h b/src/test/osd/RadosModel.h index dddaa9dec4ae..81c825a7c204 100644 --- a/src/test/osd/RadosModel.h +++ b/src/test/osd/RadosModel.h @@ -1657,7 +1657,7 @@ public: } string src = context->prefix+oid_src; - op.copy_from(src.c_str(), context->io_ctx, src_value.version, 0); + op.copy_from(src.c_str(), context->io_ctx, src_value.version); pair *cb_arg = new pair(this, diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index a1a31a647e62..4f4b0863f702 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -305,7 +305,7 @@ static int do_copy(IoCtx& io_ctx, const char *objname, __le32 src_fadvise_flags = LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL | LIBRADOS_OP_FLAG_FADVISE_NOCACHE; __le32 dest_fadvise_flags = LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL | LIBRADOS_OP_FLAG_FADVISE_DONTNEED; ObjectWriteOperation op; - op.copy_from(objname, io_ctx, 0, src_fadvise_flags); + op.copy_from2(objname, io_ctx, 0, src_fadvise_flags); op.set_op_flags2(dest_fadvise_flags); return target_ctx.operate(target_obj, &op);