]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
messages,osd,crimson: MOSDPGPull::set_pulls(vector<>&&)
authorKefu Chai <kchai@redhat.com>
Wed, 26 Aug 2020 14:53:51 +0000 (22:53 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 26 Aug 2020 17:32:03 +0000 (01:32 +0800)
this allows us to pass a lvalue reference to it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/replicated_recovery_backend.cc
src/messages/MOSDPGPull.h
src/osd/ReplicatedBackend.cc

index 6013564b60380cbf33e4eb4d102b150b595aff72..8615ee8605152c9bab1f6a7009e9c2b5c8f584a7 100644 (file)
@@ -97,9 +97,7 @@ ReplicatedRecoveryBackend::maybe_pull_missing_obj(
   msg->pgid = pg.get_pgid();
   msg->map_epoch = pg.get_osdmap_epoch();
   msg->min_epoch = pg.get_last_peering_reset();
-  std::vector<PullOp> pulls;
-  pulls.push_back(po);
-  msg->set_pulls(&pulls);
+  msg->set_pulls({std::move(po)});
   return shard_services.send_to_osd(
     pi.from.osd,
     std::move(msg),
@@ -744,7 +742,7 @@ seastar::future<> ReplicatedRecoveryBackend::handle_pull_response(
     }).then([this, m, &response](bool complete) {
       if (complete) {
        auto& pop = m->pushes[0];
-       recovering[pop.soid].set_pulled();
+       recovering.at(pop.soid).set_pulled();
        return seastar::make_ready_future<>();
       } else {
        auto reply = make_message<MOSDPGPull>();
@@ -753,8 +751,7 @@ seastar::future<> ReplicatedRecoveryBackend::handle_pull_response(
        reply->pgid = pg.get_info().pgid;
        reply->map_epoch = m->map_epoch;
        reply->min_epoch = m->min_epoch;
-       vector<PullOp> vec = { std::move(response) };
-       reply->set_pulls(&vec);
+       reply->set_pulls({std::move(response)});
        return shard_services.send_to_osd(m->from.osd, std::move(reply), pg.get_osdmap_epoch());
       }
     });
index 37c286a0a1ec33ef062ba2e2dc8446e837b3d213..877f199ed2bbc8ed516135f71c02540453dd84b0 100644 (file)
@@ -43,8 +43,8 @@ public:
   void take_pulls(std::vector<PullOp> *outpulls) {
     outpulls->swap(pulls);
   }
-  void set_pulls(std::vector<PullOp> *inpulls) {
-    inpulls->swap(pulls);
+  void set_pulls(std::vector<PullOp>&& pull_ops) {
+    pulls = std::move(pull_ops);
   }
 
   MOSDPGPull()
index c59447985c6205d28480d2ac84f83d54d1e2b11b..7c71aa26fe7a2b1c2d91fa2d1371fdb94e53660b 100644 (file)
@@ -881,7 +881,7 @@ void ReplicatedBackend::_do_pull_response(OpRequestRef op)
     reply->pgid = get_info().pgid;
     reply->map_epoch = m->map_epoch;
     reply->min_epoch = m->min_epoch;
-    reply->set_pulls(&replies);
+    reply->set_pulls(std::move(replies));
     reply->compute_cost(cct);
 
     t.register_on_complete(
@@ -2003,7 +2003,7 @@ void ReplicatedBackend::send_pulls(int prio, map<pg_shard_t, vector<PullOp> > &p
     msg->pgid = get_parent()->primary_spg_t();
     msg->map_epoch = get_osdmap_epoch();
     msg->min_epoch = get_parent()->get_last_peering_reset_epoch();
-    msg->set_pulls(&i->second);
+    msg->set_pulls(std::move(i->second));
     msg->compute_cost(cct);
     get_parent()->send_message_osd_cluster(msg, con);
   }