From efeaaaa0b079abb29ca757077c304a6efe94ec73 Mon Sep 17 00:00:00 2001 From: John Spray Date: Mon, 3 Nov 2014 12:39:56 +0000 Subject: [PATCH] mds: in segment expiry, use end instead of start 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 --- src/mds/MDLog.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mds/MDLog.cc b/src/mds/MDLog.cc index 836db4730d8d..60c84e4f941f 100644 --- a/src/mds/MDLog.cc +++ b/src/mds/MDLog.cc @@ -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); -- 2.47.3