]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: clean up assemble_backlog
authorSage Weil <sage@newdream.net>
Tue, 28 Apr 2009 23:44:12 +0000 (16:44 -0700)
committerSage Weil <sage@newdream.net>
Tue, 28 Apr 2009 23:51:34 +0000 (16:51 -0700)
src/osd/PG.cc
src/osd/PG.h

index 3450c0dc482614e745ab608e2cba4ae46bb1cfd4..b84f770ca8f129ec83f681cce3ce0107097736ff 100644 (file)
@@ -612,17 +612,18 @@ void PG::assemble_backlog(map<eversion_t,Log::Entry>& omap)
       assert(!le->is_delete());  // if it's a deletion, we are corrupt..
 
       // note the prior version
-      be.version = le->prior_version;
-      if (be.version == eversion_t() ||  // either new object, or
-         be.version >= log.bottom) {    // prior_version also already in log
+      if (le->prior_version == eversion_t() ||  // either new object, or
+         le->prior_version >= log.bottom) {    // prior_version also already in log
        dout(15) << " skipping " << be << " (have " << *le << ")" << dendl;
        continue;   // already have it logged.
       }
 
-      dout(15) << "   adding" << be << " (have " << *le << ")" << dendl;
+      be.version = le->prior_version;
+      dout(15) << "   adding " << be << " (have " << *le << ")" << dendl;
       log.log.push_front(be);
+      // don't try to index: this is the prior_version backlog entry
     } else {
-      dout(15) << "   adding" << be << dendl;
+      dout(15) << "   adding " << be << dendl;
       log.log.push_front(be);
       log.index( *log.log.begin() );
     }
index b4ca4f0b2dc68259905df082222fe8b9216e5bcc..49af4822389515ad7c03dabffaa16a1372ed375c 100644 (file)
@@ -886,7 +886,7 @@ inline ostream& operator<<(ostream& out, const PG::Info& pgi)
 
 inline ostream& operator<<(ostream& out, const PG::Log::Entry& e)
 {
-  return out << " " << e.version << " (" << e.prior_version << ")"
+  return out << e.version << " (" << e.prior_version << ")"
              << (e.is_delete() ? " - ":
                 (e.is_clone() ? " c ":
                  (e.is_modify() ? " m ":