diff options
-rw-r--r-- | src/osd/ReplicatedPG.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index b30f8628a51..76628e7c122 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -987,6 +987,17 @@ public: void wait_for_blocked_object(const hobject_t& soid, OpRequestRef op); void kick_object_context_blocked(ObjectContextRef obc); + struct C_KickBlockedObject : public Context { + ObjectContextRef obc; + ReplicatedPG *pg; + C_KickBlockedObject(ObjectContextRef obc_, ReplicatedPG *pg_) : + obc(obc_), pg(pg_) {} + protected: + void finish(int r) { + pg->kick_object_context_blocked(obc); + } + }; + void mark_all_unfound_lost(int what); eversion_t pick_newest_available(const hobject_t& oid); ObjectContextRef mark_object_lost(ObjectStore::Transaction *t, |