From 45b9659fea92cb402d4ae9723c598747eaccbd98 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 20 Dec 2011 15:28:11 -0800 Subject: [PATCH] ReplicatedPG: don't manage waiting_on_backfill in start/finish_recovery_op Set waiting_on_backfill in recover_backfill and clear in do_scan. Signed-off-by: Samuel Just --- src/osd/PG.cc | 6 ------ src/osd/ReplicatedPG.cc | 4 ++++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 9247323b42159..33599002d7641 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1488,9 +1488,6 @@ void PG::start_recovery_op(const hobject_t& soid) assert(recovering_oids.count(soid) == 0); recovering_oids.insert(soid); #endif - if (soid.is_max()) { - waiting_on_backfill = true; - } osd->start_recovery_op(this, soid); } @@ -1507,9 +1504,6 @@ void PG::finish_recovery_op(const hobject_t& soid, bool dequeue) assert(recovering_oids.count(soid)); recovering_oids.erase(soid); #endif - if (soid.is_max()) { - waiting_on_backfill = false; - } osd->finish_recovery_op(this, soid, dequeue); } diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 5be8ead7383cc..9d9660b520ef2 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -868,6 +868,8 @@ void ReplicatedPG::do_scan(MOSDPGScan *m) bufferlist::iterator p = m->get_data().begin(); ::decode(bi.objects, p); + assert(waiting_on_backfill); + waiting_on_backfill = false; finish_recovery_op(bi.begin); } break; @@ -5388,6 +5390,7 @@ int ReplicatedPG::recover_backfill(int max) MOSDPGScan *m = new MOSDPGScan(MOSDPGScan::OP_SCAN_GET_DIGEST, e, e, info.pgid, pbi.end, hobject_t()); osd->cluster_messenger->send_message(m, get_osdmap()->get_cluster_inst(backfill_target)); + waiting_on_backfill = true; start_recovery_op(pbi.end); ops++; break; @@ -5424,6 +5427,7 @@ int ReplicatedPG::recover_backfill(int max) //assert(info.stats.stats.sum.num_bytes == pinfo.stats.stats.sum.num_bytes); osd->cluster_messenger->send_message(m, get_osdmap()->get_cluster_inst(backfill_target)); + waiting_on_backfill = true; start_recovery_op(hobject_t::get_max()); ops++; } -- 2.39.5