]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
journal: wrappers to get journal metadata
authorMykola Golub <mgolub@mirantis.com>
Sat, 13 Feb 2016 07:14:28 +0000 (09:14 +0200)
committerMykola Golub <mgolub@mirantis.com>
Sat, 20 Feb 2016 06:19:16 +0000 (08:19 +0200)
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
src/journal/JournalMetadata.cc
src/journal/JournalMetadata.h
src/journal/Journaler.cc
src/journal/Journaler.h

index d13bbed9bc3d53d11251aeef01a0a1ee4d884a3b..12a8dd11bfc92ab206e45c977163da6c99c427f1 100644 (file)
@@ -301,8 +301,7 @@ void JournalMetadata::init(Context *on_init) {
   }
 
   C_ImmutableMetadata *ctx = new C_ImmutableMetadata(this, on_init);
-  client::get_immutable_metadata(m_ioctx, m_oid, &m_order, &m_splay_width,
-                                 &m_pool_id, ctx);
+  get_immutable_metadata(&m_order, &m_splay_width, &m_pool_id, ctx);
 }
 
 void JournalMetadata::shutdown() {
@@ -342,6 +341,22 @@ void JournalMetadata::shutdown() {
   m_ioctx.aio_flush();
 }
 
+void JournalMetadata::get_immutable_metadata(uint8_t *order,
+                                            uint8_t *splay_width,
+                                            int64_t *pool_id,
+                                            Context *on_finish) {
+  client::get_immutable_metadata(m_ioctx, m_oid, order, splay_width, pool_id,
+                                on_finish);
+}
+
+void JournalMetadata::get_mutable_metadata(uint64_t *minimum_set,
+                                          uint64_t *active_set,
+                                          RegisteredClients *clients,
+                                          Context *on_finish) {
+  client::get_mutable_metadata(m_ioctx, m_oid, minimum_set, active_set, clients,
+                              on_finish);
+}
+
 int JournalMetadata::register_client(const bufferlist &data) {
   ldout(m_cct, 10) << __func__ << ": " << m_client_id << dendl;
   int r = client::client_register(m_ioctx, m_oid, m_client_id, data);
@@ -543,9 +558,8 @@ void JournalMetadata::handle_immutable_metadata(int r, Context *on_init) {
 void JournalMetadata::refresh(Context *on_complete) {
   ldout(m_cct, 10) << "refreshing mutable metadata" << dendl;
   C_Refresh *refresh = new C_Refresh(this, on_complete);
-  client::get_mutable_metadata(m_ioctx, m_oid, &refresh->minimum_set,
-                               &refresh->active_set,
-                               &refresh->registered_clients, refresh);
+  get_mutable_metadata(&refresh->minimum_set, &refresh->active_set,
+                      &refresh->registered_clients, refresh);
 }
 
 void JournalMetadata::handle_refresh_complete(C_Refresh *refresh, int r) {
index f3898dab132a57ab38cc80500a8fed1342cdc4fc..02d4a9ba4799d31ec6e2dd9a628a6b428fc0a96d 100644 (file)
@@ -51,6 +51,12 @@ public:
   void init(Context *on_init);
   void shutdown();
 
+  void get_immutable_metadata(uint8_t *order, uint8_t *splay_width,
+                             int64_t *pool_id, Context *on_finish);
+
+  void get_mutable_metadata(uint64_t *minimum_set, uint64_t *active_set,
+                           RegisteredClients *clients, Context *on_finish);
+
   void add_listener(Listener *listener);
   void remove_listener(Listener *listener);
 
index d3fb225b1d55d18fc9935457cdb25cd4685a3eef..5db705ece9055c5ba3545e74c2917d2dfb662881 100644 (file)
@@ -120,6 +120,18 @@ void Journaler::shutdown() {
   m_metadata->shutdown();
 }
 
+void Journaler::get_immutable_metadata(uint8_t *order, uint8_t *splay_width,
+                                      int64_t *pool_id, Context *on_finish) {
+  m_metadata->get_immutable_metadata(order, splay_width, pool_id, on_finish);
+}
+
+void Journaler::get_mutable_metadata(uint64_t *minimum_set,
+                                    uint64_t *active_set,
+                                    RegisteredClients *clients,
+                                    Context *on_finish) {
+  m_metadata->get_mutable_metadata(minimum_set, active_set, clients, on_finish);
+}
+
 int Journaler::create(uint8_t order, uint8_t splay_width, int64_t pool_id) {
   if (order > 64 || order < 12) {
     lderr(m_cct) << "order must be in the range [12, 64]" << dendl;
index 324dbbc72bb6c463711069992e9c88ff5dbb77c0..a07ecccf8e42fd179f26d5c4f65c1ea34dfdcb06 100644 (file)
@@ -29,6 +29,7 @@ class ReplayHandler;
 class Journaler {
 public:
   typedef std::list<cls::journal::Tag> Tags;
+  typedef std::set<cls::journal::Client> RegisteredClients;
 
   static std::string header_oid(const std::string &journal_id);
   static std::string object_oid_prefix(int pool_id,
@@ -45,6 +46,11 @@ public:
   void init(Context *on_init);
   void shutdown();
 
+  void get_immutable_metadata(uint8_t *order, uint8_t *splay_width,
+                             int64_t *pool_id, Context *on_finish);
+  void get_mutable_metadata(uint64_t *minimum_set, uint64_t *active_set,
+                           RegisteredClients *clients, Context *on_finish);
+
   int register_client(const bufferlist &data);
   int unregister_client();