}
clear_temp_objs(op.temp_removed);
dout(30) << __func__ << " missing before " << get_parent()->get_log().get_missing().get_items() << dendl;
+ // flag set to true during async recovery
+ bool async = false;
pg_missing_tracker_t pmissing = get_parent()->get_local_missing();
if (pmissing.is_missing(op.soid)) {
+ async = true;
dout(30) << __func__ << " is_missing " << pmissing.is_missing(op.soid) << dendl;
for (auto &&e: op.log_entries) {
dout(30) << " add_next_event entry " << e << dendl;
op.trim_to,
op.roll_forward_to,
!op.backfill_or_async_recovery,
- localt);
+ localt,
+ async);
if (!get_parent()->pg_is_undersized() &&
(unsigned)get_parent()->whoami_shard().shard >=
const eversion_t &trim_to,
const eversion_t &roll_forward_to,
bool transaction_applied,
- ObjectStore::Transaction &t) = 0;
+ ObjectStore::Transaction &t,
+ bool async = false) = 0;
virtual void pgb_set_object_snap_mapping(
const hobject_t &soid,
const eversion_t &trim_to,
const eversion_t &roll_forward_to,
bool transaction_applied,
- ObjectStore::Transaction &t) override {
+ ObjectStore::Transaction &t,
+ bool async = false) override {
if (hset_history) {
info.hit_set = *hset_history;
}
update_snaps = true;
}
+ // flag set to true during async recovery
+ bool async = false;
pg_missing_tracker_t pmissing = get_parent()->get_local_missing();
if (pmissing.is_missing(soid)) {
+ async = true;
dout(30) << __func__ << " is_missing " << pmissing.is_missing(soid) << dendl;
for (auto &&e: log) {
dout(30) << " add_next_event entry " << e << dendl;
m->pg_trim_to,
m->pg_roll_forward_to,
update_snaps,
- rm->localt);
+ rm->localt,
+ async);
rm->opt.register_on_commit(
parent->bless_context(