// OpsExecuter -- a class for executing ops targeting a certain object.
class OpsExecuter : public seastar::enable_lw_shared_from_this<OpsExecuter> {
+ friend class SnapTrimObjSubEvent;
+
using call_errorator = crimson::errorator<
crimson::stateful_ec,
crimson::ct_error::enoent,
#include <ranges>
#include "crimson/osd/osd_operations/snaptrim_event.h"
+#include "crimson/osd/ops_executer.h"
#include "crimson/osd/pg.h"
#include "include/expected.hpp"
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 {} -> {}",
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();