From: Sage Weil Date: Tue, 9 Dec 2014 01:57:13 +0000 (-0800) Subject: osd/ReplicatedPG: allow reads to proxy etc even if blocked X-Git-Tag: v0.92~33^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=759db93f16a8538c0e3b1d4f16632b7ee77d3ff7;p=ceph.git osd/ReplicatedPG: allow reads to proxy etc even if blocked If we are not write ordered, continue with cache checks so that we can (among other things) proxy reads while promoting. Note that this may reorder reads for clients, but we've decided that's okay. Signed-off-by: Sage Weil --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index de677e38a47a..46ec6eccb08c 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1751,7 +1751,8 @@ bool ReplicatedPG::maybe_handle_cache(OpRequestRef op, << " missing_oid " << missing_oid << dendl; - if (obc.get() && obc->is_blocked()) { + // if it is write-ordered and blocked, stop now + if (obc.get() && obc->is_blocked() && write_ordered) { // we're already doing something with this object dout(20) << __func__ << " blocked on " << obc->obs.oi.soid << dendl; return false;