]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson: OpsExecuter stores only const reference to MOSDOp. 38216/head
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 20 Nov 2020 13:42:33 +0000 (14:42 +0100)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 20 Nov 2020 13:49:01 +0000 (14:49 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/ops_executer.h
src/crimson/osd/pg.cc

index b05a99911594da69743aefe031fbf80af0564500..d7e6c6980154cab9d414bf1f9bb96e6fc56a94b3 100644 (file)
@@ -87,7 +87,7 @@ private:
   const OpInfo& op_info;
   const pg_pool_t& pool_info;  // for the sake of the ObjClass API
   PGBackend& backend;
-  Ref<MOSDOp> msg;
+  const MOSDOp& msg;
   std::optional<osd_op_params_t> osd_op_params;
   bool user_modify = false;
   ceph::os::Transaction txn;
@@ -170,12 +170,12 @@ public:
               const OpInfo& op_info,
               const pg_pool_t& pool_info,
               PGBackend& backend,
-              Ref<MOSDOp> msg)
+              const MOSDOp& msg)
     : obc(std::move(obc)),
       op_info(op_info),
       pool_info(pool_info),
       backend(backend),
-      msg(std::move(msg)) {
+      msg(msg) {
   }
 
   osd_op_errorator::future<> execute_op(class OSDOp& osd_op);
@@ -184,7 +184,7 @@ public:
   osd_op_errorator::future<> flush_changes(Func&& func, MutFunc&& mut_func) &&;
 
   const auto& get_message() const {
-    return *msg;
+    return msg;
   }
 
   size_t get_processed_rw_ops_num() const {
index 2b17b37d3c423a917bf1a42fb8d9aa64fade080a..effadd778b78015b528934433bb196d561e0319a 100644 (file)
@@ -625,7 +625,7 @@ seastar::future<Ref<MOSDOpReply>> PG::do_osd_ops(
   const auto oid = m->get_snapid() == CEPH_SNAPDIR ? m->get_hobj().get_head()
                                                    : m->get_hobj();
   auto ox = std::make_unique<OpsExecuter>(
-    obc, op_info, get_pool().info, get_backend(), m);
+    obc, op_info, get_pool().info, get_backend(), *m);
   return crimson::do_for_each(
     m->ops, [obc, m, ox = ox.get()](OSDOp& osd_op) {
     logger().debug(