]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: drop backlog on recovery completion (when we mark PG_STATE_CLEAN)
authorSage Weil <sage@newdream.net>
Fri, 11 Dec 2009 16:37:19 +0000 (08:37 -0800)
committerSage Weil <sage@newdream.net>
Fri, 11 Dec 2009 16:37:19 +0000 (08:37 -0800)
src/osd/PG.cc

index 4ad31f5abe0fe8a2b5ce6591d5e2a6a5d1133fb1..b2081fb9c225786f53c4318675325d80200e615e 100644 (file)
@@ -1629,13 +1629,20 @@ void PG::_finish_recovery(Context *c)
     dout(10) << "_finish_recovery" << dendl;
     finish_sync_event = 0;
     purge_strays();
+
     update_stats();
 
     if (state_test(PG_STATE_INCONSISTENT)) {
       dout(10) << "_finish_recovery requeueing for scrub" << dendl;
       osd->scrub_wq.queue(this);
+    } else if (log.backlog) {
+      ObjectStore::Transaction t;
+      drop_backlog();
+      write_info(t);
+      write_log(t);
+      int tr = osd->store->apply_transaction(t);
+      assert(tr == 0);
     }
-
   } else {
     dout(10) << "_finish_recovery -- stale" << dendl;
   }