]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: add_event, add_next_event: ignore prior_version on backlog events
authorSamuel Just <samuel.just@dreamhost.com>
Thu, 19 May 2011 21:13:56 +0000 (14:13 -0700)
committerSamuel Just <samuel.just@dreamhost.com>
Thu, 19 May 2011 22:59:40 +0000 (15:59 -0700)
We would not have the previous version if we are merging backlog events.

Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
src/osd/PG.cc

index d2d377d9dba7b61f15db8a3b1435803366a02436..0c40157c0a72656ed21cf58067cb80b0f5f83fbe 100644 (file)
@@ -3662,6 +3662,8 @@ void PG::Missing::add_next_event(Log::Entry& e)
       //assert(missing[e.soid].need == e.prior_version);
       rmissing.erase(missing[e.soid].need);
       missing[e.soid].need = e.version;  // leave .have unchanged.
+    } else if (e.is_backlog()) {
+      missing[e.soid].need = e.version;
     } else {
       // not missing, we must have prior_version (if any)
       missing[e.soid] = item(e.version, e.prior_version);
@@ -3680,6 +3682,8 @@ void PG::Missing::add_event(Log::Entry& e)
       // missing older, revise need
       rmissing.erase(missing[e.soid].need);
       missing[e.soid].need = e.version;
+    } else if (e.is_backlog()) {
+      missing[e.soid].need = e.version;
     } else
       // not missing => have prior_version (if any)
       missing[e.soid] = item(e.version, e.prior_version);