#include "include/rados/librados.hpp"
#include "mds/JournalPointer.h"
+#include "mds/events/ESubtreeMap.h"
+
#include "JournalScanner.h"
#define dout_subsys ceph_subsys_mds
}
LogEvent *le = LogEvent::decode(le_bl);
+
if (le) {
dout(10) << "Valid entry at 0x" << std::hex << read_offset << std::dec << dendl;
+ if (le->get_type() == EVENT_SUBTREEMAP
+ || le->get_type() == EVENT_SUBTREEMAP_TEST) {
+ ESubtreeMap *sle = dynamic_cast<ESubtreeMap*>(le);
+ if (sle->expire_pos > read_offset) {
+ errors.insert(std::make_pair(
+ read_offset, EventError(
+ -ERANGE,
+ "ESubtreeMap has expire_pos ahead of its own position")));
+ }
+ }
+
if (filter.apply(read_offset, *le)) {
events[read_offset] = EventRecord(le, consumed);
} else {