}
void RecoveryBackend::clean_up(ceph::os::Transaction& t,
- std::string_view why)
+ interrupt_cause_t why)
{
- for (auto& soid : temp_contents) {
+ for_each_temp_obj([&](auto &soid) {
t.remove(pg.get_collection_ref()->get_cid(),
ghobject_t(soid, ghobject_t::NO_GEN, pg.get_pg_whoami().shard));
- }
- temp_contents.clear();
+ });
+ clear_temp_objs();
for (auto& [soid, recovery_waiter] : recovering) {
if ((recovery_waiter->pull_info
const hobject_t& target,
eversion_t version) const;
- boost::container::flat_set<hobject_t> temp_contents;
-
void add_temp_obj(const hobject_t &oid);
void clear_temp_obj(const hobject_t &oid);
+ template <typename Func>
+ void for_each_temp_obj(Func &&f) {
+ backend->for_each_temp_obj(std::forward<Func>(f));
+ }
+ void clear_temp_objs() {
+ backend->clear_temp_objs();
+ }
- void clean_up(ceph::os::Transaction& t, std::string_view why);
+ void clean_up(ceph::os::Transaction& t, interrupt_cause_t why);
virtual seastar::future<> on_stop() = 0;
private:
void handle_backfill_finish(