]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
librbd: optionally support disabling journal appends via policy
authorJason Dillaman <dillaman@redhat.com>
Wed, 27 Jul 2016 00:48:13 +0000 (20:48 -0400)
committerJason Dillaman <dillaman@redhat.com>
Tue, 2 Aug 2016 13:56:21 +0000 (09:56 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/journal/Policy.h
src/librbd/journal/StandardPolicy.h
src/test/librbd/mock/MockJournalPolicy.h
src/tools/rbd_mirror/ImageDeleter.cc
src/tools/rbd_mirror/image_replayer/OpenLocalImageRequest.cc

index 826562228a02183d8d1c2a7645cb587b6f3418bd..85373cd1abc564e9bfa9342e25b3443fa4279e7d 100644 (file)
@@ -14,6 +14,7 @@ struct Policy {
   virtual ~Policy() {
   }
 
+  virtual bool append_disabled() const = 0;
   virtual void allocate_tag_on_lock(Context *on_finish) = 0;
   virtual void cancel_external_replay(Context *on_finish) = 0;
 };
index c49ec9cb4673050ddc51bb68cb41008e72b125f7..e2b1ad7bc8359cfad6ff166505745962180d4a2a 100644 (file)
@@ -17,6 +17,9 @@ public:
   StandardPolicy(ImageCtx *image_ctx) : m_image_ctx(image_ctx) {
   }
 
+  virtual bool append_disabled() const {
+    return false;
+  }
   virtual void allocate_tag_on_lock(Context *on_finish);
   virtual void cancel_external_replay(Context *on_finish);
 
index e7debfaf535cce6bcba7fc306649589bb291e2a4..c10fd6fbf1f878ea39da53626d1205082c69f1a6 100644 (file)
@@ -11,6 +11,7 @@ namespace librbd {
 
 struct MockJournalPolicy : public journal::Policy {
 
+  MOCK_CONST_METHOD0(append_disabled, bool());
   MOCK_METHOD1(allocate_tag_on_lock, void(Context*));
   MOCK_METHOD1(cancel_external_replay, void(Context*));
 
index e4ad55ae60f3ea1510848e496dc1ee0ca0d3b8f8..7c5caee640a238f55a7310f2b533595ad26ae857 100644 (file)
@@ -74,6 +74,10 @@ private:
 };
 
 struct DeleteJournalPolicy : public librbd::journal::Policy {
+  virtual bool append_disabled() const {
+    return true;
+  }
+
   virtual void allocate_tag_on_lock(Context *on_finish) {
     on_finish->complete(0);
   }
index 63597ebf4312e58e9cf9f4b4aaf9196073d42309..856034bebae90d05bd1011cb14c05523b9424104 100644 (file)
@@ -44,6 +44,11 @@ struct MirrorJournalPolicy : public librbd::journal::Policy {
   MirrorJournalPolicy(ContextWQ *work_queue) : work_queue(work_queue) {
   }
 
+  virtual bool append_disabled() const {
+    // avoid recording any events to the local journal
+    return true;
+  }
+
   virtual void allocate_tag_on_lock(Context *on_finish) {
     // rbd-mirror will manually create tags by copying them from the peer
     work_queue->queue(on_finish, 0);