From 8443e507108c0d66fba182c29fc1ca30cdd9636c Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Thu, 4 Feb 2016 22:54:10 -0500 Subject: [PATCH] librbd: initial version of journal client and tag metadata Signed-off-by: Jason Dillaman --- src/CMakeLists.txt | 2 +- src/librbd/AioImageRequest.cc | 2 +- src/librbd/Journal.cc | 2 +- src/librbd/Makefile.am | 4 +- src/librbd/journal/Replay.h | 2 +- src/librbd/journal/{Entries.cc => Types.cc} | 211 +++++++++++++++++--- src/librbd/journal/{Entries.h => Types.h} | 144 +++++++++++-- src/librbd/operation/Request.h | 2 +- src/test/encoding/types.h | 4 +- src/test/librbd/journal/test_Entries.cc | 2 +- src/test/librbd/journal/test_Replay.cc | 2 +- src/test/librbd/journal/test_mock_Replay.cc | 2 +- src/test/librbd/mock/MockJournal.h | 2 +- src/test/librbd/test_mock_Journal.cc | 2 +- src/tools/rbd/action/Journal.cc | 2 +- 15 files changed, 326 insertions(+), 59 deletions(-) rename src/librbd/journal/{Entries.cc => Types.cc} (59%) rename src/librbd/journal/{Entries.h => Types.h} (63%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 619519c2c599a..457e71ba6c802 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1030,8 +1030,8 @@ if(${WITH_RBD}) librbd/image/RefreshParentRequest.cc librbd/image/RefreshRequest.cc librbd/image/SetSnapRequest.cc - librbd/journal/Entries.cc librbd/journal/Replay.cc + librbd/journal/Types.cc librbd/object_map/InvalidateRequest.cc librbd/object_map/LockRequest.cc librbd/object_map/Request.cc diff --git a/src/librbd/AioImageRequest.cc b/src/librbd/AioImageRequest.cc index cba7dde121972..fc77ea73f2e72 100644 --- a/src/librbd/AioImageRequest.cc +++ b/src/librbd/AioImageRequest.cc @@ -10,7 +10,7 @@ #include "librbd/ImageWatcher.h" #include "librbd/internal.h" #include "librbd/Journal.h" -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" #include "include/rados/librados.hpp" #include "osdc/Striper.h" diff --git a/src/librbd/Journal.cc b/src/librbd/Journal.cc index 0b0e453272cad..8454a390b5be5 100644 --- a/src/librbd/Journal.cc +++ b/src/librbd/Journal.cc @@ -7,8 +7,8 @@ #include "librbd/AioObjectRequest.h" #include "librbd/ExclusiveLock.h" #include "librbd/ImageCtx.h" -#include "librbd/journal/Entries.h" #include "librbd/journal/Replay.h" +#include "librbd/journal/Types.h" #include "librbd/Utils.h" #include "journal/Journaler.h" #include "journal/ReplayEntry.h" diff --git a/src/librbd/Makefile.am b/src/librbd/Makefile.am index 775d7027551ef..7248f82cfeed0 100644 --- a/src/librbd/Makefile.am +++ b/src/librbd/Makefile.am @@ -1,5 +1,5 @@ librbd_types_la_SOURCES = \ - librbd/journal/Entries.cc \ + librbd/journal/Types.cc \ librbd/WatchNotifyTypes.cc noinst_LTLIBRARIES += librbd_types.la @@ -115,7 +115,7 @@ noinst_HEADERS += \ librbd/image/RefreshRequest.h \ librbd/image/SetSnapRequest.h \ librbd/journal/Replay.h \ - librbd/journal/Entries.h \ + librbd/journal/Types.h \ librbd/object_map/InvalidateRequest.h \ librbd/object_map/LockRequest.h \ librbd/object_map/Request.h \ diff --git a/src/librbd/journal/Replay.h b/src/librbd/journal/Replay.h index 96333e363c970..e0fad8a36fc64 100644 --- a/src/librbd/journal/Replay.h +++ b/src/librbd/journal/Replay.h @@ -9,7 +9,7 @@ #include "include/Context.h" #include "include/rbd/librbd.hpp" #include "common/Mutex.h" -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" #include #include #include diff --git a/src/librbd/journal/Entries.cc b/src/librbd/journal/Types.cc similarity index 59% rename from src/librbd/journal/Entries.cc rename to src/librbd/journal/Types.cc index 5ed5cf3d071f2..781f793b933ba 100644 --- a/src/librbd/journal/Entries.cc +++ b/src/librbd/journal/Types.cc @@ -1,7 +1,7 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" #include "include/assert.h" #include "include/stringify.h" #include "common/Formatter.h" @@ -11,55 +11,58 @@ namespace journal { namespace { -class GetEventTypeVistor : public boost::static_visitor { +template +class GetTypeVisitor : public boost::static_visitor { public: - template - inline EventType operator()(const Event &event) const { - return Event::EVENT_TYPE; + template + inline E operator()(const T&) const { + return T::TYPE; } }; -class EncodeEventVisitor : public boost::static_visitor { +class EncodeVisitor : public boost::static_visitor { public: - explicit EncodeEventVisitor(bufferlist &bl) : m_bl(bl) { + explicit EncodeVisitor(bufferlist &bl) : m_bl(bl) { } - template - inline void operator()(const Event &event) const { - ::encode(static_cast(Event::EVENT_TYPE), m_bl); - event.encode(m_bl); + template + inline void operator()(const T& t) const { + ::encode(static_cast(T::TYPE), m_bl); + t.encode(m_bl); } private: bufferlist &m_bl; }; -class DecodeEventVisitor : public boost::static_visitor { +class DecodeVisitor : public boost::static_visitor { public: - DecodeEventVisitor(__u8 version, bufferlist::iterator &iter) + DecodeVisitor(__u8 version, bufferlist::iterator &iter) : m_version(version), m_iter(iter) { } - template - inline void operator()(Event &event) const { - event.decode(m_version, m_iter); + template + inline void operator()(T& t) const { + t.decode(m_version, m_iter); } private: __u8 m_version; bufferlist::iterator &m_iter; }; -class DumpEventVisitor : public boost::static_visitor { +class DumpVisitor : public boost::static_visitor { public: - explicit DumpEventVisitor(Formatter *formatter) : m_formatter(formatter) {} - - template - inline void operator()(const Event &event) const { - EventType event_type = Event::EVENT_TYPE; - m_formatter->dump_string("event_type", stringify(event_type)); - event.dump(m_formatter); + explicit DumpVisitor(Formatter *formatter, const std::string &key) + : m_formatter(formatter), m_key(key) {} + + template + inline void operator()(const T& t) const { + auto type = T::TYPE; + m_formatter->dump_string(m_key.c_str(), stringify(type)); + t.dump(m_formatter); } private: ceph::Formatter *m_formatter; + std::string m_key; }; } // anonymous namespace @@ -207,12 +210,12 @@ void UnknownEvent::dump(Formatter *f) const { } EventType EventEntry::get_event_type() const { - return boost::apply_visitor(GetEventTypeVistor(), event); + return boost::apply_visitor(GetTypeVisitor(), event); } void EventEntry::encode(bufferlist& bl) const { ENCODE_START(1, 1, bl); - boost::apply_visitor(EncodeEventVisitor(bl), event); + boost::apply_visitor(EncodeVisitor(bl), event); ENCODE_FINISH(bl); } @@ -268,12 +271,12 @@ void EventEntry::decode(bufferlist::iterator& it) { break; } - boost::apply_visitor(DecodeEventVisitor(struct_v, it), event); + boost::apply_visitor(DecodeVisitor(struct_v, it), event); DECODE_FINISH(it); } void EventEntry::dump(Formatter *f) const { - boost::apply_visitor(DumpEventVisitor(f), event); + boost::apply_visitor(DumpVisitor(f, "event_type"), event); } void EventEntry::generate_test_instances(std::list &o) { @@ -316,6 +319,136 @@ void EventEntry::generate_test_instances(std::list &o) { o.push_back(new EventEntry(FlattenEvent(123))); } +// Journal Client + +void ImageClientMeta::encode(bufferlist& bl) const { + ::encode(tag_class, bl); +} + +void ImageClientMeta::decode(__u8 version, bufferlist::iterator& it) { + ::decode(tag_class, it); +} + +void ImageClientMeta::dump(Formatter *f) const { + f->dump_unsigned("tag_class", tag_class); +} + +void MirrorPeerClientMeta::encode(bufferlist& bl) const { + ::encode(cluster_id, bl); + ::encode(pool_id, bl); + ::encode(image_id, bl); +} + +void MirrorPeerClientMeta::decode(__u8 version, bufferlist::iterator& it) { + ::decode(cluster_id, it); + ::decode(pool_id, it); + ::decode(image_id, it); +} + +void MirrorPeerClientMeta::dump(Formatter *f) const { + f->dump_string("cluster_id", cluster_id.c_str()); + f->dump_int("pool_id", pool_id); + f->dump_string("image_id", image_id.c_str()); +} + +void CliClientMeta::encode(bufferlist& bl) const { +} + +void CliClientMeta::decode(__u8 version, bufferlist::iterator& it) { +} + +void CliClientMeta::dump(Formatter *f) const { +} + +void UnknownClientMeta::encode(bufferlist& bl) const { + assert(false); +} + +void UnknownClientMeta::decode(__u8 version, bufferlist::iterator& it) { +} + +void UnknownClientMeta::dump(Formatter *f) const { +} + +ClientMetaType ClientData::get_client_meta_type() const { + return boost::apply_visitor(GetTypeVisitor(), client_meta); +} + +void ClientData::encode(bufferlist& bl) const { + ENCODE_START(1, 1, bl); + boost::apply_visitor(EncodeVisitor(bl), client_meta); + ENCODE_FINISH(bl); +} + +void ClientData::decode(bufferlist::iterator& it) { + DECODE_START(1, it); + + uint32_t client_meta_type; + ::decode(client_meta_type, it); + + // select the correct payload variant based upon the encoded op + switch (client_meta_type) { + case IMAGE_CLIENT_META_TYPE: + client_meta = ImageClientMeta(); + break; + case MIRROR_PEER_CLIENT_META_TYPE: + client_meta = MirrorPeerClientMeta(); + break; + case CLI_CLIENT_META_TYPE: + client_meta = CliClientMeta(); + break; + default: + client_meta = UnknownClientMeta(); + break; + } + + boost::apply_visitor(DecodeVisitor(struct_v, it), client_meta); + DECODE_FINISH(it); +} + +void ClientData::dump(Formatter *f) const { + boost::apply_visitor(DumpVisitor(f, "client_meta_type"), client_meta); +} + +void ClientData::generate_test_instances(std::list &o) { + o.push_back(new ClientData(ImageClientMeta())); + o.push_back(new ClientData(ImageClientMeta(123))); + o.push_back(new ClientData(MirrorPeerClientMeta())); + o.push_back(new ClientData(MirrorPeerClientMeta("cluster_id", 123, "image_id"))); + o.push_back(new ClientData(CliClientMeta())); +} + +// Journal Tag + +void TagData::encode(bufferlist& bl) const { + ::encode(cluster_id, bl); + ::encode(pool_id, bl); + ::encode(image_id, bl); + ::encode(predecessor_tag_tid, bl); + ::encode(predecessor_entry_tid, bl); +} + +void TagData::decode(bufferlist::iterator& it) { + ::decode(cluster_id, it); + ::decode(pool_id, it); + ::decode(image_id, it); + ::decode(predecessor_tag_tid, it); + ::decode(predecessor_entry_tid, it); +} + +void TagData::dump(Formatter *f) const { + f->dump_string("cluster_id", cluster_id.c_str()); + f->dump_int("pool_id", pool_id); + f->dump_string("image_id", image_id.c_str()); + f->dump_unsigned("predecessor_tag_tid", predecessor_tag_tid); + f->dump_unsigned("predecessor_entry_tid", predecessor_entry_tid); +} + +void TagData::generate_test_instances(std::list &o) { + o.push_back(new TagData()); + o.push_back(new TagData("cluster_id", 123, "image_id")); +} + } // namespace journal } // namespace librbd @@ -369,3 +502,25 @@ std::ostream &operator<<(std::ostream &out, } return out; } + +std::ostream &operator<<(std::ostream &out, + const librbd::journal::ClientMetaType &type) { + using namespace librbd::journal; + + switch (type) { + case IMAGE_CLIENT_META_TYPE: + out << "Master Image"; + break; + case MIRROR_PEER_CLIENT_META_TYPE: + out << "Mirror Peer"; + break; + case CLI_CLIENT_META_TYPE: + out << "CLI Tool"; + break; + default: + out << "Unknown (" << static_cast(type) << ")"; + break; + } + return out; + +} diff --git a/src/librbd/journal/Entries.h b/src/librbd/journal/Types.h similarity index 63% rename from src/librbd/journal/Entries.h rename to src/librbd/journal/Types.h index 09218be749749..cf4a6429686cf 100644 --- a/src/librbd/journal/Entries.h +++ b/src/librbd/journal/Types.h @@ -1,8 +1,8 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab -#ifndef CEPH_LIBRBD_JOURNAL_ENTRIES_H -#define CEPH_LIBRBD_JOURNAL_ENTRIES_H +#ifndef CEPH_LIBRBD_JOURNAL_TYPES_H +#define CEPH_LIBRBD_JOURNAL_TYPES_H #include "include/int_types.h" #include "include/buffer.h" @@ -35,7 +35,7 @@ enum EventType { }; struct AioDiscardEvent { - static const EventType EVENT_TYPE = EVENT_TYPE_AIO_DISCARD; + static const EventType TYPE = EVENT_TYPE_AIO_DISCARD; uint64_t offset; size_t length; @@ -52,7 +52,7 @@ struct AioDiscardEvent { }; struct AioWriteEvent { - static const EventType EVENT_TYPE = EVENT_TYPE_AIO_WRITE; + static const EventType TYPE = EVENT_TYPE_AIO_WRITE; uint64_t offset; size_t length; @@ -70,7 +70,7 @@ struct AioWriteEvent { }; struct AioFlushEvent { - static const EventType EVENT_TYPE = EVENT_TYPE_AIO_FLUSH; + static const EventType TYPE = EVENT_TYPE_AIO_FLUSH; void encode(bufferlist& bl) const; void decode(__u8 version, bufferlist::iterator& it); @@ -92,7 +92,7 @@ protected: }; struct OpFinishEvent : public OpEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_OP_FINISH; + static const EventType TYPE = EVENT_TYPE_OP_FINISH; int r; @@ -122,7 +122,7 @@ protected: }; struct SnapCreateEvent : public SnapEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_SNAP_CREATE; + static const EventType TYPE = EVENT_TYPE_SNAP_CREATE; SnapCreateEvent() { } @@ -136,7 +136,7 @@ struct SnapCreateEvent : public SnapEventBase { }; struct SnapRemoveEvent : public SnapEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_SNAP_REMOVE; + static const EventType TYPE = EVENT_TYPE_SNAP_REMOVE; SnapRemoveEvent() { } @@ -150,7 +150,7 @@ struct SnapRemoveEvent : public SnapEventBase { }; struct SnapRenameEvent : public SnapEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_SNAP_RENAME; + static const EventType TYPE = EVENT_TYPE_SNAP_RENAME; uint64_t snap_id; @@ -167,7 +167,7 @@ struct SnapRenameEvent : public SnapEventBase { }; struct SnapProtectEvent : public SnapEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_SNAP_PROTECT; + static const EventType TYPE = EVENT_TYPE_SNAP_PROTECT; SnapProtectEvent() { } @@ -181,7 +181,7 @@ struct SnapProtectEvent : public SnapEventBase { }; struct SnapUnprotectEvent : public SnapEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_SNAP_UNPROTECT; + static const EventType TYPE = EVENT_TYPE_SNAP_UNPROTECT; SnapUnprotectEvent() { } @@ -195,7 +195,7 @@ struct SnapUnprotectEvent : public SnapEventBase { }; struct SnapRollbackEvent : public SnapEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_SNAP_ROLLBACK; + static const EventType TYPE = EVENT_TYPE_SNAP_ROLLBACK; SnapRollbackEvent() { } @@ -209,7 +209,7 @@ struct SnapRollbackEvent : public SnapEventBase { }; struct RenameEvent : public OpEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_RENAME; + static const EventType TYPE = EVENT_TYPE_RENAME; std::string image_name; @@ -225,7 +225,7 @@ struct RenameEvent : public OpEventBase { }; struct ResizeEvent : public OpEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_RESIZE; + static const EventType TYPE = EVENT_TYPE_RESIZE; uint64_t size; @@ -241,7 +241,7 @@ struct ResizeEvent : public OpEventBase { }; struct FlattenEvent : public OpEventBase { - static const EventType EVENT_TYPE = EVENT_TYPE_FLATTEN; + static const EventType TYPE = EVENT_TYPE_FLATTEN; FlattenEvent() { } @@ -254,7 +254,7 @@ struct FlattenEvent : public OpEventBase { }; struct UnknownEvent { - static const EventType EVENT_TYPE = static_cast(-1); + static const EventType TYPE = static_cast(-1); void encode(bufferlist& bl) const; void decode(__u8 version, bufferlist::iterator& it); @@ -293,12 +293,122 @@ struct EventEntry { static void generate_test_instances(std::list &o); }; +// Journal Client data structures + +enum ClientMetaType { + IMAGE_CLIENT_META_TYPE = 0, + MIRROR_PEER_CLIENT_META_TYPE = 1, + CLI_CLIENT_META_TYPE = 2 +}; + +struct ImageClientMeta { + static const ClientMetaType TYPE = IMAGE_CLIENT_META_TYPE; + + uint64_t tag_class = 0; + + ImageClientMeta() { + } + ImageClientMeta(uint64_t tag_class) : tag_class(tag_class) { + } + + void encode(bufferlist& bl) const; + void decode(__u8 version, bufferlist::iterator& it); + void dump(Formatter *f) const; +}; + +struct MirrorPeerClientMeta { + static const ClientMetaType TYPE = MIRROR_PEER_CLIENT_META_TYPE; + + std::string cluster_id; + int64_t pool_id = 0; + std::string image_id; + + MirrorPeerClientMeta() { + } + MirrorPeerClientMeta(const std::string &cluster_id, int64_t pool_id, + const std::string &image_id) + : cluster_id(cluster_id), pool_id(pool_id), image_id(image_id) { + } + + void encode(bufferlist& bl) const; + void decode(__u8 version, bufferlist::iterator& it); + void dump(Formatter *f) const; +}; + +struct CliClientMeta { + static const ClientMetaType TYPE = CLI_CLIENT_META_TYPE; + + void encode(bufferlist& bl) const; + void decode(__u8 version, bufferlist::iterator& it); + void dump(Formatter *f) const; +}; + +struct UnknownClientMeta { + static const ClientMetaType TYPE = static_cast(-1); + + void encode(bufferlist& bl) const; + void decode(__u8 version, bufferlist::iterator& it); + void dump(Formatter *f) const; +}; + +typedef boost::variant ClientMeta; + +struct ClientData { + ClientData() { + } + ClientData(const ClientMeta &client_meta) : client_meta(client_meta) { + } + + ClientMeta client_meta; + + ClientMetaType get_client_meta_type() const; + + void encode(bufferlist& bl) const; + void decode(bufferlist::iterator& it); + void dump(Formatter *f) const; + + static void generate_test_instances(std::list &o); +}; + +// Journal Tag data structures + +struct TagData { + // owner of the tag (exclusive lock epoch) + std::string cluster_id; + int64_t pool_id = 0; + std::string image_id; + + // mapping to last committed record of previous tag + uint64_t predecessor_tag_tid = 0; + uint64_t predecessor_entry_tid = 0; + + TagData() { + } + TagData(const std::string &cluster_id, int64_t pool_id, + const std::string &image_id) + : cluster_id(cluster_id), pool_id(pool_id), image_id(image_id) { + } + + void encode(bufferlist& bl) const; + void decode(bufferlist::iterator& it); + void dump(Formatter *f) const; + + static void generate_test_instances(std::list &o); +}; + } // namespace journal } // namespace librbd std::ostream &operator<<(std::ostream &out, const librbd::journal::EventType &type); +std::ostream &operator<<(std::ostream &out, + const librbd::journal::ClientMetaType &type); WRITE_CLASS_ENCODER(librbd::journal::EventEntry); +WRITE_CLASS_ENCODER(librbd::journal::ClientData); +WRITE_CLASS_ENCODER(librbd::journal::TagData); -#endif // CEPH_LIBRBD_JOURNAL_ENTRIES_H +#endif // CEPH_LIBRBD_JOURNAL_TYPES_H diff --git a/src/librbd/operation/Request.h b/src/librbd/operation/Request.h index 54d8281d4a23c..44ff5e2eab21e 100644 --- a/src/librbd/operation/Request.h +++ b/src/librbd/operation/Request.h @@ -9,7 +9,7 @@ #include "common/RWLock.h" #include "librbd/Utils.h" #include "librbd/Journal.h" -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" namespace librbd { diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 1622a53a9b7a2..41796f4f70bc7 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -239,8 +239,10 @@ TYPE(ETableServer) TYPE(EUpdate) #ifdef WITH_RBD -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" TYPE(librbd::journal::EventEntry) +TYPE(librbd::journal::ClientData) +TYPE(librbd::journal::TagData) #include "librbd/WatchNotifyTypes.h" TYPE(librbd::watch_notify::NotifyMessage) TYPE(librbd::watch_notify::ResponseMessage) diff --git a/src/test/librbd/journal/test_Entries.cc b/src/test/librbd/journal/test_Entries.cc index 28598c0b0ffd8..91c5c78a8b8c2 100644 --- a/src/test/librbd/journal/test_Entries.cc +++ b/src/test/librbd/journal/test_Entries.cc @@ -7,7 +7,7 @@ #include "librbd/AioImageRequestWQ.h" #include "librbd/internal.h" #include "librbd/Journal.h" -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" #include "journal/Journaler.h" #include "journal/ReplayEntry.h" #include "journal/ReplayHandler.h" diff --git a/src/test/librbd/journal/test_Replay.cc b/src/test/librbd/journal/test_Replay.cc index f0f0409418394..c144cbf2d3544 100644 --- a/src/test/librbd/journal/test_Replay.cc +++ b/src/test/librbd/journal/test_Replay.cc @@ -10,7 +10,7 @@ #include "librbd/ImageCtx.h" #include "librbd/ImageWatcher.h" #include "librbd/Journal.h" -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" void register_test_journal_replay() { } diff --git a/src/test/librbd/journal/test_mock_Replay.cc b/src/test/librbd/journal/test_mock_Replay.cc index 81e8dd152a5eb..5302b8f94ba51 100644 --- a/src/test/librbd/journal/test_mock_Replay.cc +++ b/src/test/librbd/journal/test_mock_Replay.cc @@ -5,8 +5,8 @@ #include "test/librbd/test_support.h" #include "test/librbd/mock/MockImageCtx.h" #include "librbd/AioImageRequest.h" -#include "librbd/journal/Entries.h" #include "librbd/journal/Replay.h" +#include "librbd/journal/Types.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/src/test/librbd/mock/MockJournal.h b/src/test/librbd/mock/MockJournal.h index b71505ee64157..9fe3518506004 100644 --- a/src/test/librbd/mock/MockJournal.h +++ b/src/test/librbd/mock/MockJournal.h @@ -6,7 +6,7 @@ #include "gmock/gmock.h" #include "librbd/Journal.h" -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" namespace librbd { diff --git a/src/test/librbd/test_mock_Journal.cc b/src/test/librbd/test_mock_Journal.cc index df842d3aedfbb..56fd1e62f4ee7 100644 --- a/src/test/librbd/test_mock_Journal.cc +++ b/src/test/librbd/test_mock_Journal.cc @@ -8,8 +8,8 @@ #include "common/Mutex.h" #include "librbd/Journal.h" #include "librbd/Utils.h" -#include "librbd/journal/Entries.h" #include "librbd/journal/Replay.h" +#include "librbd/journal/Types.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/src/tools/rbd/action/Journal.cc b/src/tools/rbd/action/Journal.cc index d15e6543ee718..2c556a6d50593 100644 --- a/src/tools/rbd/action/Journal.cc +++ b/src/tools/rbd/action/Journal.cc @@ -21,7 +21,7 @@ #include "journal/ReplayEntry.h" #include "journal/ReplayHandler.h" //#include "librbd/Journal.h" // XXXMG: for librbd::Journal::reset() -#include "librbd/journal/Entries.h" +#include "librbd/journal/Types.h" namespace rbd { namespace action { -- 2.39.5