]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: update last_complete if nothing missing
authorSage Weil <sage@newdream.net>
Fri, 8 Aug 2008 17:45:49 +0000 (10:45 -0700)
committerSage Weil <sage@newdream.net>
Fri, 8 Aug 2008 17:45:49 +0000 (10:45 -0700)
src/osd/PG.cc

index c6072dcfeb91c9ec6ee85ce60001dff14a9cc448..b6c3a5c15e10f843851f5fd819d92ae38b7ba424 100644 (file)
@@ -946,6 +946,13 @@ void PG::activate(ObjectStore::Transaction& t,
   clean_up_local(t); 
 
   // init complete pointer
+  if (missing.num_missing() == 0 &&
+      info.last_complete != info.last_update) {
+    dout(10) << "activate - no missing, moving last_complete " << info.last_complete 
+            << " -> " << info.last_update << dendl;
+    info.last_complete = info.last_update;
+  }
+
   if (info.last_complete == info.last_update) {
     dout(10) << "activate - complete" << dendl;
     log.complete_to == log.log.end();
@@ -1030,6 +1037,7 @@ void PG::activate(ObjectStore::Transaction& t,
 
       // update our missing
       if (peer_missing[peer].num_missing() == 0) {
+       peer_info[peer].last_complete = peer_info[peer].last_update;
         dout(10) << "activate peer osd" << peer << " already uptodate, " << peer_info[peer] << dendl;
        assert(peer_info[peer].is_uptodate());
         uptodate_set.insert(peer);