summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/rados/librados.hpp3
-rw-r--r--src/librados/IoCtxImpl.cc12
-rw-r--r--src/librados/IoCtxImpl.h3
-rw-r--r--src/librados/librados.cc10
4 files changed, 28 insertions, 0 deletions
diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp
index 25e96210b15..436c9a60418 100644
--- a/src/include/rados/librados.hpp
+++ b/src/include/rados/librados.hpp
@@ -741,6 +741,9 @@ namespace librados
int64_t get_id();
+ uint32_t get_object_hash_position(const std::string& oid);
+ uint32_t get_object_pg_hash_position(const std::string& oid);
+
config_t cct();
private:
diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc
index ae943f8bc92..49a61173cc1 100644
--- a/src/librados/IoCtxImpl.cc
+++ b/src/librados/IoCtxImpl.cc
@@ -64,6 +64,18 @@ int librados::IoCtxImpl::set_snap_write_context(snapid_t seq, vector<snapid_t>&
return 0;
}
+uint32_t librados::IoCtxImpl::get_object_hash_position(const std::string& oid)
+{
+ Mutex::Locker l(*lock);
+ return objecter->get_object_hash_position(poolid, oid, oloc.nspace);
+}
+
+uint32_t librados::IoCtxImpl::get_object_pg_hash_position(const std::string& oid)
+{
+ Mutex::Locker l(*lock);
+ return objecter->get_object_pg_hash_position(poolid, oid, oloc.nspace);
+}
+
void librados::IoCtxImpl::queue_aio_write(AioCompletionImpl *c)
{
get();
diff --git a/src/librados/IoCtxImpl.h b/src/librados/IoCtxImpl.h
index 6137ba91257..7d7cf3722c7 100644
--- a/src/librados/IoCtxImpl.h
+++ b/src/librados/IoCtxImpl.h
@@ -91,6 +91,9 @@ struct librados::IoCtxImpl {
return poolid;
}
+ uint32_t get_object_hash_position(const std::string& oid);
+ uint32_t get_object_pg_hash_position(const std::string& oid);
+
::ObjectOperation *prepare_assert_ops(::ObjectOperation *op);
// snaps
diff --git a/src/librados/librados.cc b/src/librados/librados.cc
index 4a16704abd9..738c3224afe 100644
--- a/src/librados/librados.cc
+++ b/src/librados/librados.cc
@@ -1333,6 +1333,16 @@ int64_t librados::IoCtx::get_id()
return io_ctx_impl->get_id();
}
+uint32_t librados::IoCtx::get_object_hash_position(const std::string& oid)
+{
+ return io_ctx_impl->get_object_hash_position(oid);
+}
+
+uint32_t librados::IoCtx::get_object_pg_hash_position(const std::string& oid)
+{
+ return io_ctx_impl->get_object_pg_hash_position(oid);
+}
+
librados::config_t librados::IoCtx::cct()
{
return (config_t)io_ctx_impl->client->cct;