]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: check safe_pos for _expired check
authorSage Weil <sage.weil@dreamhost.com>
Thu, 24 Mar 2011 03:50:12 +0000 (20:50 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Thu, 24 Mar 2011 16:29:00 +0000 (09:29 -0700)
Don't expire a log segment until it's committed (not acked).

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/mds/MDLog.cc

index bc5e14382db36578661c3b2fa2406307d1b9d042..81cb31ba85f4b8ea903d4b1786afed18d92b7935 100644 (file)
@@ -396,9 +396,9 @@ void MDLog::_expired(LogSegment *ls)
 
   if (!capped && ls == get_current_segment()) {
     dout(5) << "_expired not expiring " << ls->offset << ", last one and !capped" << dendl;
-  } else if (ls->end > journaler->get_write_ack_pos()) {
-    dout(5) << "_expired not expiring " << ls->offset << ", not fully flushed yet, ack "
-           << journaler->get_write_ack_pos() << " < end " << ls->end << dendl;
+  } else if (ls->end > journaler->get_write_safe_pos()) {
+    dout(5) << "_expired not expiring " << ls->offset << ", not fully flushed yet, safe "
+           << journaler->get_write_safe_pos() << " < end " << ls->end << dendl;
   } else {
     // expired.
     expired_segments.insert(ls);