]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: call PeeringState::get_peer_missing(peer)
authorKefu Chai <kchai@redhat.com>
Sun, 30 Aug 2020 08:24:41 +0000 (16:24 +0800)
committerKefu Chai <kchai@redhat.com>
Sun, 30 Aug 2020 15:15:25 +0000 (23:15 +0800)
as PeeringState::get_peer_missing(const pg_shard_t &peer) already checks
for the non-existent shard, and because `get_replica_recovery_order()`
never returns primary osd, it's safe to use
`PeeringState::get_peer_missing(peer)` instead of
`pg->get_peering_state().get_peer_missing().find(peer)`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/pg_recovery.cc

index 4237729aa79e7c90bc9a3732b910df400c216b4d..aeb4db4ccbea70b2835851db370f36468c804e96 100644 (file)
@@ -190,20 +190,18 @@ size_t PGRecovery::start_replica_recovery_ops(
   auto recovery_order = get_replica_recovery_order();
   for (auto &peer : recovery_order) {
     assert(peer != pg->get_peering_state().get_primary());
-    auto pm = pg->get_peering_state().get_peer_missing().find(peer);
-    assert(pm != pg->get_peering_state().get_peer_missing().end());
+    const auto& pm = pg->get_peering_state().get_peer_missing(peer);
 
     crimson::get_logger(ceph_subsys_osd).debug(
        "{}: peer osd.{} missing {} objects", __func__,
-       peer, pm->second.num_missing());
+       peer, pm.num_missing());
     crimson::get_logger(ceph_subsys_osd).trace(
        "{}: peer osd.{} missing {}", __func__,
-       peer, pm->second.get_items());
+       peer, pm.get_items());
 
     // recover oldest first
-    const pg_missing_t &m(pm->second);
-    for (auto p = m.get_rmissing().begin();
-        p != m.get_rmissing().end() && started < max_to_start;
+    for (auto p = pm.get_rmissing().begin();
+        p != pm.get_rmissing().end() && started < max_to_start;
         ++p) {
       const auto &soid = p->second;
 
@@ -237,7 +235,7 @@ size_t PGRecovery::start_replica_recovery_ops(
        crimson::get_logger(ceph_subsys_osd).debug(
            "{}: soid {} is a delete, removing", __func__, soid);
        map<hobject_t,pg_missing_item>::const_iterator r =
-         m.get_items().find(soid);
+         pm.get_items().find(soid);
        started += prep_object_replica_deletes(
          soid, r->second.need, out);
        continue;
@@ -262,7 +260,7 @@ size_t PGRecovery::start_replica_recovery_ops(
        "{}: recover_object_replicas({})",
        __func__,
        soid);
-      map<hobject_t,pg_missing_item>::const_iterator r = m.get_items().find(
+      map<hobject_t,pg_missing_item>::const_iterator r = pm.get_items().find(
        soid);
       started += prep_object_replica_pushes(
        soid, r->second.need, out);