From: Patrick Donnelly Date: Mon, 18 May 2026 14:59:33 +0000 (-0400) Subject: osdc: use cref for messages to helpers X-Git-Tag: testing/wip-pdonnell-testing-20260520.191703-main^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c693cd2201a0ec07df954791a4fd9b5cf66f4a4a;p=ceph-ci.git osdc: use cref for messages to helpers These methods already expect a cref_t and this avoids another cast / message reference bump. Signed-off-by: Patrick Donnelly --- diff --git a/src/common/ref.h b/src/common/ref.h index 788a0842139..287174694a5 100644 --- a/src/common/ref.h +++ b/src/common/ref.h @@ -21,6 +21,14 @@ template cref_t ref_cast(const cref_t& r) noexcept { return static_cast(r.get()); } +template +cref_t cref_cast(const ref_t& r) noexcept { + return static_cast(r.get()); +} +template +cref_t cref_cast(const cref_t& r) noexcept { + return static_cast(r.get()); +} template ceph::ref_t make_ref(Args&&... args) { return {new T(std::forward(args)...), false}; diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 03ab1ec4335..c751ff879cb 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -1059,12 +1059,11 @@ void Objecter::ms_fast_dispatch2(const MessageRef& m) auto s = static_cast(priv.get()); if (s) { s->track_enqueue(m, [this, priv, s, m]() { - cref_t msg = ref_cast(m); s->track_dequeue(m); - handle_osd_op_reply(std::move(msg)); + handle_osd_op_reply(cref_cast(m)); }); } else { - handle_osd_op_reply(ref_cast(m)); + handle_osd_op_reply(cref_cast(m)); } return; } @@ -1074,12 +1073,11 @@ void Objecter::ms_fast_dispatch2(const MessageRef& m) auto s = static_cast(priv.get()); if (s) { s->track_enqueue(m, [this, priv, s, m]() { - cref_t msg = ref_cast(m); s->track_dequeue(m); - handle_watch_notify(std::move(msg)); + handle_watch_notify(cref_cast(m)); }); } else { - handle_watch_notify(ref_cast(m)); + handle_watch_notify(cref_cast(m)); } return; } @@ -1098,12 +1096,11 @@ Dispatcher::dispatch_result_t Objecter::ms_dispatch2(const MessageRef& m) auto s = static_cast(priv.get()); if (s) { s->track_enqueue(m, [this, priv, s, m]() { - cref_t msg = ref_cast(m); s->track_dequeue(m); - handle_osd_backoff(std::move(msg)); + handle_osd_backoff(cref_cast(m)); }); } else { - handle_osd_backoff(ref_cast(m)); + handle_osd_backoff(cref_cast(m)); } return Dispatcher::HANDLED(); } @@ -1116,12 +1113,11 @@ Dispatcher::dispatch_result_t Objecter::ms_dispatch2(const MessageRef& m) auto s = static_cast(priv.get()); if (s) { s->track_enqueue(m, [this, priv, s, m]() { - cref_t msg = ref_cast(m); s->track_dequeue(m); - handle_command_reply(std::move(msg)); + handle_command_reply(cref_cast(m)); }); } else { - handle_command_reply(ref_cast(m)); + handle_command_reply(cref_cast(m)); } return Dispatcher::HANDLED(); } else {