From 35e9e7edc8ad3bdba86f21b965bbef6800bcaa71 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 3 Jul 2024 20:46:25 -0700 Subject: [PATCH] crimson/.../internal_client_request: record epoch at construction and use for interruption Signed-off-by: Samuel Just (cherry picked from commit 238f15e42df3d0bd3e699ba24e8a940af9ae20ba) --- src/crimson/osd/osd_operations/internal_client_request.cc | 4 ++-- src/crimson/osd/osd_operations/internal_client_request.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crimson/osd/osd_operations/internal_client_request.cc b/src/crimson/osd/osd_operations/internal_client_request.cc index d72c128683da..22d7f3e492ad 100644 --- a/src/crimson/osd/osd_operations/internal_client_request.cc +++ b/src/crimson/osd/osd_operations/internal_client_request.cc @@ -25,7 +25,7 @@ SET_SUBSYS(osd); namespace crimson::osd { InternalClientRequest::InternalClientRequest(Ref pg) - : pg(std::move(pg)) + : pg(pg), start_epoch(pg->get_osdmap_epoch()) { assert(bool(this->pg)); assert(this->pg->is_primary()); @@ -125,7 +125,7 @@ seastar::future<> InternalClientRequest::start() } else { return seastar::stop_iteration::no; } - }, pg); + }, pg, start_epoch); }).then([this] { track_event(); }).finally([this] { diff --git a/src/crimson/osd/osd_operations/internal_client_request.h b/src/crimson/osd/osd_operations/internal_client_request.h index 97ce0492f547..f198e5846433 100644 --- a/src/crimson/osd/osd_operations/internal_client_request.h +++ b/src/crimson/osd/osd_operations/internal_client_request.h @@ -44,6 +44,7 @@ private: seastar::future<> do_process(); Ref pg; + epoch_t start_epoch; OpInfo op_info; PipelineHandle handle; -- 2.47.3