]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: expose methods for calculating object hash position
authorSage Weil <sage@inktank.com>
Fri, 11 Oct 2013 22:34:33 +0000 (15:34 -0700)
committerSage Weil <sage@inktank.com>
Fri, 6 Dec 2013 22:37:26 +0000 (14:37 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
src/include/rados/librados.hpp
src/librados/IoCtxImpl.cc
src/librados/IoCtxImpl.h
src/librados/librados.cc

index 997bb7fe7b25ccbc64717485385668b39d05f473..488acf418f46d3933405f67850b9895502d974cd 100644 (file)
@@ -734,6 +734,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:
index 6d35f6ba6f446bd8838d2eda596fc41ee5d8cc16..612c193cb1a1d029016e5c49d91beb3155549315 100644 (file)
@@ -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();
index ccecd4e8184d794bc9be8560c59d2ceabb630b16..3e5e023683ea5d0b24e19b0a903a412fb67bdb80 100644 (file)
@@ -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
index db2efaad64093df008112969d19e4458230fff17..7f0ae1fcc327629d91d57f8187bf5e140d0a6635 100644 (file)
@@ -1316,6 +1316,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;