}
}
-void ECBackend::_on_change(ObjectStore::Transaction *t)
+void ECBackend::on_change()
{
+ dout(10) << __func__ << dendl;
writing.clear();
tid_to_op_map.clear();
for (map<ceph_tid_t, ReadOp>::iterator i = tid_to_read_map.begin();
/// @see ReadOp below
void check_recovery_sources(const OSDMapRef osdmap);
- void _on_change(ObjectStore::Transaction *t);
+ void on_change();
void clear_state();
void on_flushed();
}
-void PGBackend::on_change(ObjectStore::Transaction *t)
+void PGBackend::on_change_cleanup(ObjectStore::Transaction *t)
{
dout(10) << __func__ << dendl;
// clear temp
ghobject_t(*i, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard));
}
temp_contents.clear();
- _on_change(t);
}
coll_t PGBackend::get_temp_coll(ObjectStore::Transaction *t)
virtual void check_recovery_sources(const OSDMapRef osdmap) = 0;
+
+ /**
+ * clean up any temporary on-disk state due to a pg interval change
+ */
+ void on_change_cleanup(ObjectStore::Transaction *t);
/**
* implementation should clear itself, contexts blessed prior to on_change
* won't be called after on_change()
*/
- void on_change(ObjectStore::Transaction *t);
- virtual void _on_change(ObjectStore::Transaction *t) = 0;
+ virtual void on_change() = 0;
virtual void clear_state() = 0;
virtual void on_flushed() = 0;
pull_from_peer.clear();
}
-void ReplicatedBackend::_on_change(ObjectStore::Transaction *t)
+void ReplicatedBackend::on_change()
{
+ dout(10) << __func__ << dendl;
for (map<ceph_tid_t, InProgressOp>::iterator i = in_progress_ops.begin();
i != in_progress_ops.end();
in_progress_ops.erase(i++)) {
OpRequestRef op
);
- void _on_change(ObjectStore::Transaction *t);
+ void on_change();
void clear_state();
void on_flushed();
// any dups
apply_and_flush_repops(is_primary());
- pgbackend->on_change(t);
+ pgbackend->on_change_cleanup(t);
+ pgbackend->on_change();
// clear snap_trimmer state
snap_trimmer_machine.process_event(Reset());