From: Mykola Golub Date: Sat, 13 Feb 2016 07:14:28 +0000 (+0200) Subject: journal: wrappers to get journal metadata X-Git-Tag: v10.1.0~343^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=886e28abee13b91e05bb0e8d73caed9e71090362;p=ceph.git journal: wrappers to get journal metadata Signed-off-by: Mykola Golub --- diff --git a/src/journal/JournalMetadata.cc b/src/journal/JournalMetadata.cc index d13bbed9bc3d..12a8dd11bfc9 100644 --- a/src/journal/JournalMetadata.cc +++ b/src/journal/JournalMetadata.cc @@ -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) { diff --git a/src/journal/JournalMetadata.h b/src/journal/JournalMetadata.h index f3898dab132a..02d4a9ba4799 100644 --- a/src/journal/JournalMetadata.h +++ b/src/journal/JournalMetadata.h @@ -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); diff --git a/src/journal/Journaler.cc b/src/journal/Journaler.cc index d3fb225b1d55..5db705ece905 100644 --- a/src/journal/Journaler.cc +++ b/src/journal/Journaler.cc @@ -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; diff --git a/src/journal/Journaler.h b/src/journal/Journaler.h index 324dbbc72bb6..a07ecccf8e42 100644 --- a/src/journal/Journaler.h +++ b/src/journal/Journaler.h @@ -29,6 +29,7 @@ class ReplayHandler; class Journaler { public: typedef std::list Tags; + typedef std::set 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();