]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Journaler: add some checks for expire_pos.
authorGreg Farnum <gregf@hq.newdream.net>
Tue, 15 Feb 2011 17:00:06 +0000 (09:00 -0800)
committerGreg Farnum <gregf@hq.newdream.net>
Tue, 15 Feb 2011 17:01:15 +0000 (09:01 -0800)
I don't think these are necessary checks, but the expire_pos >= trim_pos
invariant got broken somehow by johnl, and these checks won't hurt!

Signed-off-by: Greg Farnum <gregf@hq.newdream.net>
src/mds/journal.cc
src/osdc/Journaler.cc

index 2cbeb5740b768a4458a1a989ec61002ccffb3bdb..eb4fbd8407a441c33b8bb8f0286f4057b08b232d 100644 (file)
@@ -961,7 +961,7 @@ void ESlaveUpdate::replay(MDS *mds)
 
 void ESubtreeMap::replay(MDS *mds) 
 {
-  if (expire_pos)
+  if (expire_pos && expire_pos > mds->mdlog->journaler->get_expire_pos())
     mds->mdlog->journaler->set_expire_pos(expire_pos);
   // suck up the subtree map?
   if (mds->mdcache->is_subtrees()) {
index 90063e9dd02fd240fa200229e1e661df45296b55..de4707450daa4b1fb345094c032c8b2d64a255a6 100644 (file)
@@ -932,6 +932,7 @@ void Journaler::trim()
   
   // trim
   assert(trim_to <= write_pos);
+  assert(trim_to <= expire_pos);
   assert(trim_to > trimming_pos);
   dout(10) << "trim trimming to " << trim_to 
           << ", trimmed/trimming/expire are "