From: Samuel Just Date: Thu, 10 Nov 2011 01:16:57 +0000 (-0800) Subject: PG: update info.history even if lastmap is absent X-Git-Tag: v0.39~115 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a3dd5bd67ba19aae51a51318138ef10213a91449;p=ceph.git PG: update info.history even if lastmap is absent Previously, we did not update same_interval_since etc if we do not have the previous map. Signed-off-by: Samuel Just --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 7cfdfcd0630..a16f1cfdd08 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -3525,13 +3525,6 @@ void PG::start_peering_interval(const OSDMapRef lastmap, i.acting = oldacting; i.up = oldup; - if (oldacting != acting || oldup != up) { - info.history.same_interval_since = osdmap->get_epoch(); - } - if (oldup != up) { - info.history.same_up_since = osdmap->get_epoch(); - } - if (i.acting.size()) { i.maybe_went_rw = lastmap->get_up_thru(i.acting[0]) >= i.first && @@ -3540,14 +3533,20 @@ void PG::start_peering_interval(const OSDMapRef lastmap, i.maybe_went_rw = 0; } - if (oldprimary != get_primary()) { - info.history.same_primary_since = osdmap->get_epoch(); - } - dout(10) << " noting past " << i << dendl; dirty_info = true; } + if (oldacting != acting || oldup != up) { + info.history.same_interval_since = osdmap->get_epoch(); + } + if (oldup != up) { + info.history.same_up_since = osdmap->get_epoch(); + } + if (oldprimary != get_primary()) { + info.history.same_primary_since = osdmap->get_epoch(); + } + dout(10) << " up " << oldup << " -> " << up << ", acting " << oldacting << " -> " << acting << ", role " << oldrole << " -> " << role << dendl;