]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: in segment expiry, use end instead of start
authorJohn Spray <john.spray@redhat.com>
Mon, 3 Nov 2014 12:39:56 +0000 (12:39 +0000)
committerJohn Spray <john.spray@redhat.com>
Mon, 1 Dec 2014 12:09:13 +0000 (12:09 +0000)
Previously we were always leaving the last log
segment un-expired from Journaler's POV, because
we were updating expire_pos to the *start* of the
expired journal segment instead of the *end*.

This was harmless, but cleaning it up makes it
easier to see what's going on during journal flushes
in testing.

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

index 836db4730d8de3159c550bbdb5901f9b19b3d068..60c84e4f941f41180f8484ab5e93462d25664d85 100644 (file)
@@ -607,14 +607,15 @@ void MDLog::_trim_expired_segments()
     }
     
     dout(10) << "_trim_expired_segments trimming expired "
-            << ls->seq << "/" << ls->offset << dendl;
+            << ls->seq << "/0x" << std::hex << ls->offset << std::dec << dendl;
     expired_events -= ls->num_events;
     expired_segments.erase(ls);
     num_events -= ls->num_events;
       
     // this was the oldest segment, adjust expire pos
-    if (journaler->get_expire_pos() < ls->offset)
-      journaler->set_expire_pos(ls->offset);
+    if (journaler->get_expire_pos() < ls->end) {
+      journaler->set_expire_pos(ls->end);
+    }
     
     logger->set(l_mdl_expos, ls->offset);
     logger->inc(l_mdl_segtrm);