From: Greg Farnum Date: Thu, 29 Aug 2013 20:12:41 +0000 (-0700) Subject: Objecter: add an Op::target_oloc and use it instead of base_oloc in send_op() X-Git-Tag: v0.69~30^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=665acc11acf5daed9889b6f6de184cd44aa09c88;p=ceph.git Objecter: add an Op::target_oloc and use it instead of base_oloc in send_op() For now we simply set target_oloc = base_oloc in recalc_op_target(), but we will shortly be doing more interesting things with it there. Signed-off-by: Greg Farnum --- diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 24ddc04ba625..888d0694470f 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -1243,7 +1243,7 @@ tid_t Objecter::_op_submit(Op *op) // send? ldout(cct, 10) << "op_submit oid " << op->oid - << " " << op->base_oloc + << " " << op->base_oloc << " " << op->target_oloc << " " << op->ops << " tid " << op->tid << " osd." << (op->session ? op->session->osd : -1) << dendl; @@ -1297,12 +1297,13 @@ int Objecter::recalc_op_target(Op *op) { vector acting; pg_t pgid = op->pgid; + op->target_oloc = op->base_oloc; if (op->precalc_pgid) { ldout(cct, 10) << "recalc_op_target have " << pgid << " pool " << osdmap->have_pg_pool(pgid.pool()) << dendl; if (!osdmap->have_pg_pool(pgid.pool())) return RECALC_OP_TARGET_POOL_DNE; } else { - int ret = osdmap->object_locator_to_pg(op->oid, op->base_oloc, pgid); + int ret = osdmap->object_locator_to_pg(op->oid, op->target_oloc, pgid); if (ret == -ENOENT) return RECALC_OP_TARGET_POOL_DNE; } @@ -1444,7 +1445,7 @@ void Objecter::send_op(Op *op) op->stamp = ceph_clock_now(cct); MOSDOp *m = new MOSDOp(client_inc, op->tid, - op->oid, op->base_oloc, op->pgid, osdmap->get_epoch(), + op->oid, op->target_oloc, op->pgid, osdmap->get_epoch(), flags); m->set_snapid(op->snapid); @@ -2211,6 +2212,7 @@ void Objecter::dump_ops(Formatter *fmt) const fmt->dump_int("attempts", op->attempts); fmt->dump_stream("object_id") << op->oid; fmt->dump_stream("object_locator") << op->base_oloc; + fmt->dump_stream("target_object_locator") << op->target_oloc; fmt->dump_stream("snapid") << op->snapid; fmt->dump_stream("snap_context") << op->snapc; fmt->dump_stream("mtime") << op->mtime; diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index d38487dcda8d..be7560544976 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -746,6 +746,7 @@ public: object_t oid; object_locator_t base_oloc; + object_locator_t target_oloc; pg_t pgid; vector acting;