]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: use explicit ghobject_t() ctor for omap operations
authorSage Weil <sage@redhat.com>
Thu, 18 Jun 2015 22:57:45 +0000 (15:57 -0700)
committerSage Weil <sage@redhat.com>
Fri, 19 Jun 2015 00:37:58 +0000 (17:37 -0700)
Omap only works for non-ec pools, so we can use ghobject_t(hobject_t).

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/ReplicatedPG.cc

index 5e60b0fb7f5049e5883ecf5069a2d42a11eafebf..30fcf75a5a3024cc62861864600cad44095bf81a 100644 (file)
@@ -4095,7 +4095,7 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store,
 
       val.append(valstr);
       newattrs[key] = val;
-      t.omap_setkeys(coll_t(pgid), obj, newattrs);
+      t.omap_setkeys(coll_t(pgid), ghobject_t(obj), newattrs);
       r = store->apply_transaction(t);
       if (r < 0)
         ss << "error=" << r;
@@ -4107,7 +4107,7 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store,
       cmd_getval(service->cct, cmdmap, "key", key);
 
       keys.insert(key);
-      t.omap_rmkeys(coll_t(pgid), obj, keys);
+      t.omap_rmkeys(coll_t(pgid), ghobject_t(obj), keys);
       r = store->apply_transaction(t);
       if (r < 0)
         ss << "error=" << r;
@@ -4119,7 +4119,7 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store,
 
       cmd_getval(service->cct, cmdmap, "header", headerstr);
       newheader.append(headerstr);
-      t.omap_setheader(coll_t(pgid), obj, newheader);
+      t.omap_setheader(coll_t(pgid), ghobject_t(obj), newheader);
       r = store->apply_transaction(t);
       if (r < 0)
         ss << "error=" << r;
@@ -4129,7 +4129,7 @@ void TestOpsSocketHook::test_ops(OSDService *service, ObjectStore *store,
       //Debug: Output entire omap
       bufferlist hdrbl;
       map<string, bufferlist> keyvals;
-      r = store->omap_get(coll_t(pgid), obj, &hdrbl, &keyvals);
+      r = store->omap_get(coll_t(pgid), ghobject_t(obj), &hdrbl, &keyvals);
       if (r >= 0) {
           ss << "header=" << string(hdrbl.c_str(), hdrbl.length());
           for (map<string, bufferlist>::iterator it = keyvals.begin();
index b0658980c5aeaf39e44a34bd8a0ab8a5a0cca068..02ac024cb3241433ea6f8d1c9b29ed40322236d6 100644 (file)
@@ -4717,7 +4717,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
 
        if (!pool.info.require_rollback()) {
          ObjectMap::ObjectMapIterator iter = osd->store->get_omap_iterator(
-           coll, soid
+           coll, ghobject_t(soid)
            );
          assert(iter);
          iter->upper_bound(start_after);
@@ -4754,7 +4754,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
 
        if (!pool.info.require_rollback()) {
          ObjectMap::ObjectMapIterator iter = osd->store->get_omap_iterator(
-           coll, soid
+           coll, ghobject_t(soid)
            );
           if (!iter) {
             result = -ENOENT;
@@ -4784,7 +4784,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
       }
       ++ctx->num_read;
       {
-       osd->store->omap_get_header(coll, soid, &osd_op.outdata);
+       osd->store->omap_get_header(coll, ghobject_t(soid), &osd_op.outdata);
        ctx->delta_stats.num_rd_kb += SHIFT_ROUND_UP(osd_op.outdata.length(), 10);
        ctx->delta_stats.num_rd++;
       }
@@ -4805,7 +4805,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
        tracepoint(osd, do_osd_op_pre_omapgetvalsbykeys, soid.oid.name.c_str(), soid.snap.val, list_entries(keys_to_get).c_str());
        map<string, bufferlist> out;
        if (!pool.info.require_rollback()) {
-         osd->store->omap_get_values(coll, soid, keys_to_get, &out);
+         osd->store->omap_get_values(coll, ghobject_t(soid), keys_to_get, &out);
        } // else return empty omap entries
        ::encode(out, osd_op.outdata);
        ctx->delta_stats.num_rd_kb += SHIFT_ROUND_UP(osd_op.outdata.length(), 10);
@@ -4840,7 +4840,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
               i != assertions.end();
               ++i)
            to_get.insert(i->first);
-         int r = osd->store->omap_get_values(coll, soid, to_get, &out);
+         int r = osd->store->omap_get_values(coll, ghobject_t(soid),
+                                             to_get, &out);
          if (r < 0) {
            result = r;
            break;
@@ -6094,11 +6095,12 @@ int ReplicatedPG::fill_in_copy_get(
     if (left > 0 && !cursor.omap_complete) {
       assert(cursor.data_complete);
       if (cursor.omap_offset.empty()) {
-       osd->store->omap_get_header(coll, oi.soid, &reply_obj.omap_header);
+       osd->store->omap_get_header(coll, ghobject_t(oi.soid),
+                                   &reply_obj.omap_header);
       }
       bufferlist omap_data;
       ObjectMap::ObjectMapIterator iter =
-       osd->store->get_omap_iterator(coll, oi.soid);
+       osd->store->get_omap_iterator(coll, ghobject_t(oi.soid));
       assert(iter);
       iter->upper_bound(cursor.omap_offset);
       for (; iter->valid(); iter->next()) {