From: Igor Fedotov Date: Tue, 9 Feb 2016 18:19:07 +0000 (+0300) Subject: OSD/ReplicatedPG: Fixing lack of object unblock when flush fails. X-Git-Tag: v10.1.0~384^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4cc98434e786e99982b4128958e4a07943a7551d;p=ceph.git OSD/ReplicatedPG: Fixing lack of object unblock when flush fails. See: http://tracker.ceph.com/issues/14511 Signed-off-by: Igor Fedotov --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 9205118f4690..a626b2cb7741 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -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);