]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Objecter: add an Op::target_oid, and use it when submitting Ops
authorGreg Farnum <greg@inktank.com>
Tue, 3 Sep 2013 21:42:14 +0000 (14:42 -0700)
committerGreg Farnum <greg@inktank.com>
Tue, 10 Sep 2013 22:33:48 +0000 (15:33 -0700)
For now it's just a copy of base_oid, but soon we will allow it
to be overwritten for OSD-driven redirects.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/osdc/Objecter.cc
src/osdc/Objecter.h

index de4132d53197a8e4bbd93990ce7e91b7e090f8ed..34a02c0fb44cef398d83068830c7bb69c0288735 100644 (file)
@@ -1328,6 +1328,7 @@ int Objecter::recalc_op_target(Op *op)
   bool is_read = op->flags & CEPH_OSD_FLAG_READ;
   bool is_write = op->flags & CEPH_OSD_FLAG_WRITE;
 
+  op->target_oid = op->base_oid;
   op->target_oloc = op->base_oloc;
   const pg_pool_t *pi = osdmap->get_pg_pool(op->base_oloc.pool);
   if (pi) {
@@ -1343,7 +1344,7 @@ int Objecter::recalc_op_target(Op *op)
     if (!osdmap->have_pg_pool(pgid.pool()))
       return RECALC_OP_TARGET_POOL_DNE;
   } else {
-    int ret = osdmap->object_locator_to_pg(op->base_oid, op->target_oloc, pgid);
+    int ret = osdmap->object_locator_to_pg(op->target_oid, op->target_oloc, pgid);
     if (ret == -ENOENT)
       return RECALC_OP_TARGET_POOL_DNE;
   }
@@ -1485,7 +1486,8 @@ void Objecter::send_op(Op *op)
   op->stamp = ceph_clock_now(cct);
 
   MOSDOp *m = new MOSDOp(client_inc, op->tid, 
-                        op->base_oid, op->target_oloc, op->pgid, osdmap->get_epoch(),
+                        op->target_oid, op->target_oloc, op->pgid,
+                        osdmap->get_epoch(),
                         flags);
 
   m->set_snapid(op->snapid);
index 9c9341ac4d24b5e822c1d168ae343a212451661c..f1c41e5e3f99ec6ce83c06e3bb794e38e5b22473 100644 (file)
@@ -830,6 +830,7 @@ public:
     
     object_t base_oid;
     object_locator_t base_oloc;
+    object_t target_oid;
     object_locator_t target_oloc;
 
     pg_t pgid;