This prevents leaking repops that are referenced by LogUpdateCtx for
updates that were in flight.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
assert(r == 0);
}
+void ReplicatedPG::cancel_log_updates()
+{
+ // get rid of all the LogUpdateCtx so their references to repops are
+ // dropped
+ log_entry_update_waiting_on.clear();
+}
+
// -------------------------------------------------------
void ReplicatedPG::get_watchers(list<obj_watch_item_t> &pg_watchers)
cancel_flush_ops(false);
cancel_proxy_ops(false);
apply_and_flush_repops(false);
+ cancel_log_updates();
pgbackend->on_change();
boost::intrusive_ptr<RepGather> repop;
set<pg_shard_t> waiting_on;
};
+ void cancel_log_updates();
map<ceph_tid_t, LogUpdateCtx> log_entry_update_waiting_on;