From: Samuel Just Date: Thu, 6 Mar 2014 01:39:42 +0000 (-0800) Subject: ReplicatedPG: ensure clones are readable after find_object_context X-Git-Tag: v0.78~75^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bafd76ada36dbd0deb26becaedc1294cf18a5bd9;p=ceph.git ReplicatedPG: ensure clones are readable after find_object_context We only get EAGAIN if the object is missing. We also need the clone to be readable if we are reading it. The other find_object_context callers already require !degraded. Fixes: #7624 Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index d031256261a57..4e38c2ce7adc9 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1251,6 +1251,11 @@ void ReplicatedPG::do_op(OpRequestRef op) wait_for_unreadable_object(missing_oid, op); return; } + } else if (r == 0 && is_unreadable_object(obc->obs.oi.soid)) { + dout(10) << __func__ << ": clone " << obc->obs.oi.soid + << " is unreadable, waiting" << dendl; + wait_for_unreadable_object(obc->obs.oi.soid, op); + return; } if (hit_set) {