From 759db93f16a8538c0e3b1d4f16632b7ee77d3ff7 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 8 Dec 2014 17:57:13 -0800 Subject: [PATCH] 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 --- src/osd/ReplicatedPG.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index de677e38a47a3..46ec6eccb08cd 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; -- 2.39.5