]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix error reformatting subtreemap_test events 6070/head
authorJohn Spray <john.spray@redhat.com>
Thu, 24 Sep 2015 12:10:46 +0000 (13:10 +0100)
committerJohn Spray <john.spray@redhat.com>
Thu, 24 Sep 2015 12:12:03 +0000 (13:12 +0100)
Rare outside of vstart clusters, but if someone did
ever have one of these events in their journal and
try to update to latest ceph, they would end up
with bogus expire_pos on the reformatted events.

Signed-off-by: John Spray <john.spray@redhat.com>
src/mds/MDLog.cc

index 396170ef7ae50b9ec38fff5e7d566fb08eaca541..43cdc48503548bb4b9a5250d04cea635cf5886f2 100644 (file)
@@ -1100,9 +1100,11 @@ void MDLog::_reformat_journal(JournalPointer const &jp_in, Journaler *old_journa
 
       // Zero-out expire_pos in subtreemap because offsets have changed
       // (expire_pos is just an optimization so it's safe to eliminate it)
-      if (le->get_type() == EVENT_SUBTREEMAP) {
-        dout(20) << __func__ << " zeroing expire_pos in subtreemap event at " << le_pos << dendl;
+      if (le->get_type() == EVENT_SUBTREEMAP
+          || le->get_type() == EVENT_SUBTREEMAP_TEST) {
         ESubtreeMap *sle = dynamic_cast<ESubtreeMap*>(le);
+        dout(20) << __func__ << " zeroing expire_pos in subtreemap event at "
+          << le_pos << " seq=" << sle->event_seq << dendl;
         assert(sle != NULL);
         sle->expire_pos = 0;
         modified = true;