<< ", queue on waiting_for_map " << op->get_source() << dendl;
waiting_for_map[op->get_source()].push_back(op);
op->mark_delayed("op must wait for map");
+ osd->request_osdmap_update(op->min_epoch);
return;
}
bufferlist t;
uint64_t len = miter->first - last;
r = pgbackend->objects_read_sync(soid, last, len, op.flags, &t);
- if (r == -EIO) {
- r = rep_repair_primary_object(soid, ctx->op);
- }
if (r < 0) {
osd->clog->error() << coll << " " << soid
<< " sparse-read failed to read: "
bufferlist tmpbl;
r = pgbackend->objects_read_sync(soid, miter->first, miter->second,
op.flags, &tmpbl);
+ if (r == -EIO) {
+ r = rep_repair_primary_object(soid, ctx->op);
+ }
if (r < 0) {
return r;
}