diff options
author | Greg Farnum <greg@inktank.com> | 2013-08-29 13:12:41 -0700 |
---|---|---|
committer | Greg Farnum <greg@inktank.com> | 2013-08-30 14:06:33 -0700 |
commit | 665acc11acf5daed9889b6f6de184cd44aa09c88 (patch) | |
tree | e2a10b7318dd412d0f89291310e8853a4edcfa84 | |
parent | e2fcad09d94d965867147627b73e99da9454436f (diff) | |
download | ceph-665acc11acf5daed9889b6f6de184cd44aa09c88.tar.gz |
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 <greg@inktank.com>
-rw-r--r-- | src/osdc/Objecter.cc | 8 | ||||
-rw-r--r-- | src/osdc/Objecter.h | 1 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 24ddc04ba62..888d0694470 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<int> 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 d38487dcda8..be756054497 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<int> acting; |