From 9245c7650dd20177e303f0d910de376032a067b5 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 6 Dec 2022 14:01:44 +0000 Subject: [PATCH] crimson/osd: snap trimming informs OpsExecuter about altered objects Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/ops_executer.h | 2 ++ src/crimson/osd/osd_operations/snaptrim_event.cc | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/crimson/osd/ops_executer.h b/src/crimson/osd/ops_executer.h index 14fd5a9c2d310..b6b976ab02486 100644 --- a/src/crimson/osd/ops_executer.h +++ b/src/crimson/osd/ops_executer.h @@ -42,6 +42,8 @@ class PG; // OpsExecuter -- a class for executing ops targeting a certain object. class OpsExecuter : public seastar::enable_lw_shared_from_this { + friend class SnapTrimObjSubEvent; + using call_errorator = crimson::errorator< crimson::stateful_ec, crimson::ct_error::enoent, diff --git a/src/crimson/osd/osd_operations/snaptrim_event.cc b/src/crimson/osd/osd_operations/snaptrim_event.cc index dd089b8747cdb..933ad6dcc5a61 100644 --- a/src/crimson/osd/osd_operations/snaptrim_event.cc +++ b/src/crimson/osd/osd_operations/snaptrim_event.cc @@ -4,6 +4,7 @@ #include #include "crimson/osd/osd_operations/snaptrim_event.h" +#include "crimson/osd/ops_executer.h" #include "crimson/osd/pg.h" #include "include/expected.hpp" @@ -297,6 +298,8 @@ SnapTrimObjSubEvent::remove_or_update( coi = object_info_t(coid); + auto smtxn = pg->osdriver.get_transaction(&txn); + OpsExecuter::snap_map_remove(coid, pg->snap_mapper, smtxn); } else { // save adjusted snaps for this object logger().info("{}: {} snaps {} -> {}", @@ -326,6 +329,8 @@ SnapTrimObjSubEvent::remove_or_update( coi.mtime, 0} ); + auto smtxn = pg->osdriver.get_transaction(&txn); + OpsExecuter::snap_map_modify(coid, new_snaps, pg->snap_mapper, smtxn); } osd_op_p.at_version = pg->next_version(); -- 2.39.5