]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD/ReplicatedPG: Fixing lack of object unblock when flush fails.
authorIgor Fedotov <ifedotov@mirantis.com>
Tue, 9 Feb 2016 18:19:07 +0000 (21:19 +0300)
committerIgor Fedotov <ifedotov@mirantis.com>
Tue, 9 Feb 2016 18:19:07 +0000 (21:19 +0300)
See: http://tracker.ceph.com/issues/14511

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
src/osd/ReplicatedPG.cc

index 9205118f469089acd2a981d6b0943f0af4e0b998..a626b2cb7741ff5c8b2abda2f612bd97c9be0974 100644 (file)
@@ -7870,6 +7870,11 @@ void ReplicatedPG::finish_flush(hobject_t oid, ceph_tid_t tid, int r)
   if (r < 0 && !(r == -ENOENT && fop->removal)) {
     if (fop->op)
       osd->reply_op_error(fop->op, -EBUSY);
+    if (fop->blocking) {
+      obc->stop_block();
+      kick_object_context_blocked(obc);
+    }
+
     if (!fop->dup_ops.empty()) {
       dout(20) << __func__ << " requeueing dups" << dendl;
       requeue_ops(fop->dup_ops);