From: Jason Dillaman Date: Mon, 30 Nov 2015 17:31:02 +0000 (-0500) Subject: journal: helper method to determine if journal exists X-Git-Tag: v10.0.2~148^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ac35e84f2560578d45f2b4e06346f222a86ac77a;p=ceph.git journal: helper method to determine if journal exists Signed-off-by: Jason Dillaman --- diff --git a/src/journal/Journaler.cc b/src/journal/Journaler.cc index 83862fc822108..3957f8f152b3c 100644 --- a/src/journal/Journaler.cc +++ b/src/journal/Journaler.cc @@ -69,6 +69,16 @@ Journaler::~Journaler() { assert(m_recorder == NULL); } +int Journaler::exists(bool *header_exists) const { + int r = m_header_ioctx.stat(m_header_oid, NULL, NULL); + if (r < 0 && r != -ENOENT) { + return r; + } + + *header_exists = (r == 0); + return 0; +} + void Journaler::init(Context *on_init) { m_metadata->init(new C_InitJournaler(this, on_init)); } diff --git a/src/journal/Journaler.h b/src/journal/Journaler.h index d35821891402e..1230e409b2df5 100644 --- a/src/journal/Journaler.h +++ b/src/journal/Journaler.h @@ -30,6 +30,7 @@ public: const std::string &client_id, double commit_interval); ~Journaler(); + int exists(bool *header_exists) const; int create(uint8_t order, uint8_t splay_width, int64_t pool_id); int remove(); @@ -66,7 +67,7 @@ private: } }; - librados::IoCtx m_header_ioctx; + mutable librados::IoCtx m_header_ioctx; librados::IoCtx m_data_ioctx; CephContext *m_cct; std::string m_client_id;