obc = get_object_context(missing_oid, true);
}
dout(10) << __func__ << " " << obc->obs.oi.soid << dendl;
+ if (scrubber.write_blocked_by_scrub(obc->obs.oi.soid)) {
+ dout(10) << __func__ << " " << obc->obs.oi.soid
+ << " blocked by scrub" << dendl;
+ if (op) {
+ waiting_for_active.push_back(op);
+ dout(10) << __func__ << " " << obc->obs.oi.soid
+ << " placing op in waiting_for_active" << dendl;
+ } else {
+ dout(10) << __func__ << " " << obc->obs.oi.soid
+ << " no op, dropping on the floor" << dendl;
+ }
+ return;
+ }
PromoteCallback *cb = new PromoteCallback(obc, this);
object_locator_t my_oloc = oloc;
*/
void do_cache_redirect(OpRequestRef op);
/**
- * This function starts up a copy from
+ * This function attempts to start a promote. Either it succeeds,
+ * or places op on a wait list. If op is null, failure means that
+ * this is a noop. If a future user wants to be able to distinguish
+ * these cases, a return value should be added.
*/
void promote_object(ObjectContextRef obc, ///< [optional] obc
const hobject_t& missing_object, ///< oid (if !obc)