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 <sam.just@inktank.com>
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) {