]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
journal: add method to remove journal from disk
authorJason Dillaman <dillaman@redhat.com>
Tue, 14 Jul 2015 18:12:40 +0000 (14:12 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 6 Nov 2015 01:42:42 +0000 (20:42 -0500)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/journal/Journaler.cc
src/journal/Journaler.h

index 1ba002cae37400748eb152bc55db5d4e88bb31eb..c61676bc0095fdfec354a35aabb3919bbce847fb 100644 (file)
@@ -95,6 +95,23 @@ int Journaler::create(uint8_t order, uint8_t splay_width) {
   return 0;
 }
 
+int Journaler::remove() {
+  int r = m_trimmer->remove_objects();
+  if (r < 0) {
+    lderr(m_cct) << "failed to remove journal objects: " << cpp_strerror(r)
+                 << dendl;
+    return r;
+  }
+
+  r = m_header_ioctx.remove(m_header_oid);
+  if (r < 0) {
+    lderr(m_cct) << "failed to remove journal header: " << cpp_strerror(r)
+                 << dendl;
+    return r;
+  }
+  return 0;
+}
+
 int Journaler::register_client(const std::string &description) {
   return m_metadata->register_client(description);
 }
index 14e45d69109a39cf842910e4ef61cc380b6d57a2..f27038d5cf030cf5b325265a7fe3511ca0780744 100644 (file)
@@ -31,6 +31,7 @@ public:
   ~Journaler();
 
   int create(uint8_t order, uint8_t splay_width);
+  int remove();
 
   void init(Context *on_init);