]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG: copy: add a C_KickBlockedObject
authorGreg Farnum <greg@inktank.com>
Fri, 4 Oct 2013 22:55:41 +0000 (15:55 -0700)
committerGreg Farnum <greg@inktank.com>
Fri, 25 Oct 2013 20:36:45 +0000 (13:36 -0700)
As the name says, you give it an obc and it kicks the block list
when finish()ed.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/osd/ReplicatedPG.h

index 9a39fd8f7a23c5946ce79790c1b8e571ba1825d7..9b8cf1faf7f9f6de9f825487ef50360238689a4c 100644 (file)
@@ -1153,6 +1153,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,