From 4164b08887c2b2c7a9df0cd80a681bb61be28ee6 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 5 Feb 2024 20:46:57 -0800 Subject: [PATCH] crimson/.../client_request: don't pass Ref by reference If we only need a reference to the PG, pass a PG&. Passing Ref& makes it easy to inadvertently std::move() the passed value from a caller. Signed-off-by: Samuel Just --- .../osd/osd_operations/client_request.cc | 18 +++++++++--------- .../osd/osd_operations/client_request.h | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 0e5dfac130277..00ed92adf650a 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -193,7 +193,7 @@ seastar::future<> ClientRequest::with_pg( ClientRequest::interruptible_future<> ClientRequest::process_pg_op( - Ref &pg) + Ref pg) { return pg->do_pg_ops( m @@ -219,7 +219,7 @@ auto ClientRequest::reply_op_error(const Ref& pg, int err) ClientRequest::interruptible_future<> ClientRequest::process_op( - instance_handle_t &ihref, Ref &pg, unsigned this_instance_id) + instance_handle_t &ihref, Ref pg, unsigned this_instance_id) { LOG_PREFIX(ClientRequest::process_op); return ihref.enter_stage( @@ -295,7 +295,7 @@ ClientRequest::process_op( ClientRequest::interruptible_future<> ClientRequest::do_process( instance_handle_t &ihref, - Ref& pg, crimson::osd::ObjectContextRef obc, + Ref pg, crimson::osd::ObjectContextRef obc, unsigned this_instance_id) { LOG_PREFIX(ClientRequest::do_process); @@ -340,7 +340,7 @@ ClientRequest::do_process( return reply_op_error(pg, -ENOENT); } - SnapContext snapc = get_snapc(pg,obc); + SnapContext snapc = get_snapc(*pg,obc); if ((m->has_flag(CEPH_OSD_FLAG_ORDERSNAP)) && snapc.seq < obc->ssc->snapset.seq) { @@ -431,24 +431,24 @@ void ClientRequest::put_historic() const } const SnapContext ClientRequest::get_snapc( - Ref& pg, + PG &pg, crimson::osd::ObjectContextRef obc) const { LOG_PREFIX(ClientRequest::get_snapc); SnapContext snapc; if (op_info.may_write() || op_info.may_cache()) { // snap - if (pg->get_pgpool().info.is_pool_snaps_mode()) { + if (pg.get_pgpool().info.is_pool_snaps_mode()) { // use pool's snapc - snapc = pg->get_pgpool().snapc; + snapc = pg.get_pgpool().snapc; DEBUGDPP("{} using pool's snapc snaps={}", - *pg, *this, snapc.snaps); + pg, *this, snapc.snaps); } else { // client specified snapc snapc.seq = m->get_snap_seq(); snapc.snaps = m->get_snaps(); DEBUGDPP("{}: client specified snapc seq={} snaps={}", - *pg, *this, snapc.seq, snapc.snaps); + pg, *this, snapc.seq, snapc.snaps); } } return snapc; diff --git a/src/crimson/osd/osd_operations/client_request.h b/src/crimson/osd/osd_operations/client_request.h index 48fac7f910366..3bc81fd4d4441 100644 --- a/src/crimson/osd/osd_operations/client_request.h +++ b/src/crimson/osd/osd_operations/client_request.h @@ -266,16 +266,16 @@ private: interruptible_future<> do_process( instance_handle_t &ihref, - Ref& pg, + Ref pg, crimson::osd::ObjectContextRef obc, unsigned this_instance_id); ::crimson::interruptible::interruptible_future< ::crimson::osd::IOInterruptCondition> process_pg_op( - Ref &pg); + Ref pg); ::crimson::interruptible::interruptible_future< ::crimson::osd::IOInterruptCondition> process_op( instance_handle_t &ihref, - Ref &pg, + Ref pg, unsigned this_instance_id); bool is_pg_op() const; @@ -290,7 +290,7 @@ private: bool is_misdirected(const PG& pg) const; const SnapContext get_snapc( - Ref& pg, + PG &pg, crimson::osd::ObjectContextRef obc) const; public: -- 2.39.5