From a936b581f5a4f03df3e98df84233b84d908f2bb3 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Thu, 15 Jun 2023 15:12:27 +0000 Subject: [PATCH] osd/OSD: maybe_share_map() use scope guard Signed-off-by: Matan Breizman --- src/osd/OSD.cc | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 6db41bd609c..7487653d558 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -7293,27 +7293,29 @@ void OSDService::maybe_share_map( // assume the peer has the newer of the op's sent_epoch and what // we think we sent them. - session->projected_epoch_lock.lock(); - if (peer_epoch_lb > session->projected_epoch) { - dout(10) << __func__ << " con " << con - << " " << con->get_peer_addr() - << " map epoch " << session->projected_epoch - << " -> " << peer_epoch_lb << " (as per caller)" << dendl; - session->projected_epoch = peer_epoch_lb; - } + epoch_t send_from = 0; + { + std::lock_guard l(session->projected_epoch_lock); - if (osdmap->get_epoch() <= session->projected_epoch) { - session->projected_epoch_lock.unlock(); - return; - } + if (peer_epoch_lb > session->projected_epoch) { + dout(10) << __func__ << " con " << con + << " " << con->get_peer_addr() + << " map epoch " << session->projected_epoch + << " -> " << peer_epoch_lb << " (as per caller)" << dendl; + session->projected_epoch = peer_epoch_lb; + } - const epoch_t send_from = session->projected_epoch; + if (osdmap->get_epoch() <= session->projected_epoch) { + return; + } + + send_from = session->projected_epoch; dout(10) << __func__ << " con " << con - << " " << con->get_peer_addr() - << " map epoch " << session->projected_epoch - << " -> " << osdmap->get_epoch() << " (shared)" << dendl; - session->projected_epoch = osdmap->get_epoch(); - session->projected_epoch_lock.unlock(); + << " " << con->get_peer_addr() + << " map epoch " << session->projected_epoch + << " -> " << osdmap->get_epoch() << " (shared)" << dendl; + session->projected_epoch = osdmap->get_epoch(); + } send_incremental_map(send_from, con, osdmap); } -- 2.39.5