ctx->updated_hset_history = info.hit_set;
pg_hit_set_history_t &updated_hit_set_hist = *(ctx->updated_hset_history);
- if (updated_hit_set_hist.current_last_stamp != utime_t()) {
- // FIXME: we cheat slightly here by bundling in a remove on a object
- // other the RepGather object. we aren't carrying an ObjectContext for
- // the deleted object over this period.
- hobject_t old_obj =
- get_hit_set_current_object(updated_hit_set_hist.current_last_stamp);
- ctx->log.push_back(
- pg_log_entry_t(pg_log_entry_t::DELETE,
- old_obj,
- ctx->at_version,
- updated_hit_set_hist.current_last_update,
- 0,
- osd_reqid_t(),
- ctx->mtime));
- if (pool.info.require_rollback()) {
- if (ctx->log.back().mod_desc.rmobject(ctx->at_version.version)) {
- ctx->op_t->stash(old_obj, ctx->at_version.version);
- } else {
- ctx->op_t->remove(old_obj);
- }
- } else {
- ctx->op_t->remove(old_obj);
- ctx->log.back().mod_desc.mark_unrollbackable();
- }
- ++ctx->at_version.version;
-
- struct stat st;
- int r = osd->store->stat(
- coll,
- ghobject_t(old_obj, ghobject_t::NO_GEN, pg_whoami.shard),
- &st);
- assert(r == 0);
- --ctx->delta_stats.num_objects;
- ctx->delta_stats.num_bytes -= st.st_size;
- }
- updated_hit_set_hist.current_last_update = info.last_update; // *after* above remove!
+ updated_hit_set_hist.current_last_update = info.last_update;
updated_hit_set_hist.current_info.version = ctx->at_version;
updated_hit_set_hist.history.push_back(updated_hit_set_hist.current_info);