]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Objecter: add an Op::target_oloc and use it instead of base_oloc in send_op()
authorGreg Farnum <greg@inktank.com>
Thu, 29 Aug 2013 20:12:41 +0000 (13:12 -0700)
committerGreg Farnum <greg@inktank.com>
Fri, 30 Aug 2013 21:06:33 +0000 (14:06 -0700)
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>
src/osdc/Objecter.cc
src/osdc/Objecter.h

index 24ddc04ba625b808c61927af17f2e5e48fa993f9..888d0694470f36d507d6f35f8f9f265375364aea 100644 (file)
@@ -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;
index d38487dcda8d7a30dcd293b88ac79c68f55d7ab8..be756054497617c59a93f7b2a1165398534a06de 100644 (file)
@@ -746,6 +746,7 @@ public:
     
     object_t oid;
     object_locator_t base_oloc;
+    object_locator_t target_oloc;
 
     pg_t pgid;
     vector<int> acting;