]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: remove copy-get-classic 13547/head
authorSage Weil <sage@redhat.com>
Thu, 23 Feb 2017 16:15:43 +0000 (11:15 -0500)
committerSage Weil <sage@redhat.com>
Thu, 23 Feb 2017 16:15:43 +0000 (11:15 -0500)
This hasn't been used since well before hammer.

Signed-off-by: Sage Weil <sage@redhat.com>
PendingReleaseNotes
src/include/rados.h
src/osd/OSD.cc
src/osd/PrimaryLogPG.cc
src/osd/PrimaryLogPG.h
src/osd/osd_types.cc
src/osd/osd_types.h

index 7189e68f920eec7a193092821d5edec4d7df09d0..fbe482e228c9730d0e2f7c25812e8a00d8ade73e 100644 (file)
@@ -66,3 +66,6 @@
   SORTBITWISE flag enabled (Jewel and later).  (Note that this flag is
   required to be set before upgrading beyond Jewel.)
 
+* The rados copy-get-classic operation has been removed since it has not been
+  used by the OSD since before hammer.  It is unlikely any librados user is
+  using this operation explicitly since there is also the more modern copy-get.
index 02a7f8c632e6ebb069253b518442672020063c0a..cd8dae97ee36c76ec6eb17bf886f3971e4dbf81d 100644 (file)
@@ -240,7 +240,7 @@ extern const char *ceph_osd_state_name(int s);
                                                                            \
        /* tiering */                                                       \
        f(COPY_FROM,    __CEPH_OSD_OP(WR, DATA, 26),    "copy-from")        \
-       f(COPY_GET_CLASSIC, __CEPH_OSD_OP(RD, DATA, 27), "copy-get-classic") \
+       /* was copy-get-classic */                                      \
        f(UNDIRTY,      __CEPH_OSD_OP(WR, DATA, 28),    "undirty")          \
        f(ISDIRTY,      __CEPH_OSD_OP(RD, DATA, 29),    "isdirty")          \
        f(COPY_GET,     __CEPH_OSD_OP(RD, DATA, 30),    "copy-get")         \
index 08b727f5d25bd2653b53301cd6b350020b014e13..d82a7fac4b41f10ce4ba6195eb3f7364a4602373 100644 (file)
@@ -9478,7 +9478,6 @@ int OSD::init_op_flags(OpRequestRef& op)
             (iter->op.op != CEPH_OSD_OP_SETXATTR) &&
             (iter->op.op != CEPH_OSD_OP_RMXATTR) &&
             (iter->op.op != CEPH_OSD_OP_STARTSYNC) &&
-            (iter->op.op != CEPH_OSD_OP_COPY_GET_CLASSIC) &&
             (iter->op.op != CEPH_OSD_OP_COPY_GET) &&
             (iter->op.op != CEPH_OSD_OP_COPY_FROM)) {
           op->set_promote();
index 2ed79b3f3e5e455703fbcd1839a0c6a8740a80d3..cd759411688a5f21db73e8fa058447a9284ec735 100644 (file)
@@ -2046,13 +2046,8 @@ void PrimaryLogPG::do_op(OpRequestRef& op)
   if (r && (r != -ENOENT || !obc)) {
     // copy the reqids for copy get on ENOENT
     if (r == -ENOENT &&
-       (m->ops[0].op.op == CEPH_OSD_OP_COPY_GET_CLASSIC ||
-        m->ops[0].op.op == CEPH_OSD_OP_COPY_GET)) {
-      bool classic = false;
-      if (m->ops[0].op.op == CEPH_OSD_OP_COPY_GET_CLASSIC) {
-       classic = true;
-      }
-      fill_in_copy_get_noent(op, oid, m->ops[0], classic);
+       (m->ops[0].op.op == CEPH_OSD_OP_COPY_GET)) {
+      fill_in_copy_get_noent(op, oid, m->ops[0]);
       return;
     }
     dout(20) << __func__ << "find_object_context got error " << r << dendl;
@@ -2159,13 +2154,8 @@ void PrimaryLogPG::do_op(OpRequestRef& op)
        ((m->get_snapid() != CEPH_SNAPDIR) &&
        obc->obs.oi.is_whiteout()))) {
     // copy the reqids for copy get on ENOENT
-    if (m->ops[0].op.op == CEPH_OSD_OP_COPY_GET_CLASSIC ||
-       m->ops[0].op.op == CEPH_OSD_OP_COPY_GET) {
-      bool classic = false;
-      if (m->ops[0].op.op == CEPH_OSD_OP_COPY_GET_CLASSIC) {
-       classic = true;
-      }
-      fill_in_copy_get_noent(op, oid, m->ops[0], classic);
+    if (m->ops[0].op.op == CEPH_OSD_OP_COPY_GET) {
+      fill_in_copy_get_noent(op, oid, m->ops[0]);
       close_op_ctx(ctx);
       return;
     }
@@ -5878,16 +5868,10 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
       obs.oi.clear_omap_digest();
       break;
 
-    case CEPH_OSD_OP_COPY_GET_CLASSIC:
-      ++ctx->num_read;
-      tracepoint(osd, do_osd_op_pre_copy_get_classic, soid.oid.name.c_str(), soid.snap.val);
-      result = fill_in_copy_get(ctx, bp, osd_op, ctx->obc, true);
-      break;
-
     case CEPH_OSD_OP_COPY_GET:
       ++ctx->num_read;
       tracepoint(osd, do_osd_op_pre_copy_get, soid.oid.name.c_str(), soid.snap.val);
-      result = fill_in_copy_get(ctx, bp, osd_op, ctx->obc, false);
+      result = fill_in_copy_get(ctx, bp, osd_op, ctx->obc);
       break;
 
     case CEPH_OSD_OP_COPY_FROM:
@@ -6879,21 +6863,16 @@ struct C_CopyFrom_AsyncReadCb : public Context {
   OSDOp *osd_op;
   object_copy_data_t reply_obj;
   uint64_t features;
-  bool classic;
   size_t len;
-  C_CopyFrom_AsyncReadCb(OSDOp *osd_op, uint64_t features, bool classic) :
-    osd_op(osd_op), features(features), classic(classic), len(0) {}
+  C_CopyFrom_AsyncReadCb(OSDOp *osd_op, uint64_t features) :
+    osd_op(osd_op), features(features), len(0) {}
   void finish(int r) override {
     assert(len > 0);
     assert(len <= reply_obj.data.length());
     bufferlist bl;
     bl.substr_of(reply_obj.data, 0, len);
     reply_obj.data.swap(bl);
-    if (classic) {
-      reply_obj.encode_classic(osd_op->outdata);
-    } else {
-      ::encode(reply_obj, osd_op->outdata, features);
-    }
+    ::encode(reply_obj, osd_op->outdata, features);
   }
 };
 
@@ -6901,8 +6880,7 @@ int PrimaryLogPG::fill_in_copy_get(
   OpContext *ctx,
   bufferlist::iterator& bp,
   OSDOp& osd_op,
-  ObjectContextRef &obc,
-  bool classic)
+  ObjectContextRef &obc)
 {
   object_info_t& oi = obc->obs.oi;
   hobject_t& soid = oi.soid;
@@ -6925,7 +6903,7 @@ int PrimaryLogPG::fill_in_copy_get(
   object_copy_data_t _reply_obj;
   C_CopyFrom_AsyncReadCb *cb = NULL;
   if (pool.info.require_rollback()) {
-    cb = new C_CopyFrom_AsyncReadCb(&osd_op, features, classic);
+    cb = new C_CopyFrom_AsyncReadCb(&osd_op, features);
   }
   object_copy_data_t &reply_obj = cb ? cb->reply_obj : _reply_obj;
   // size, mtime
@@ -7051,11 +7029,7 @@ int PrimaryLogPG::fill_in_copy_get(
           << dendl;
   reply_obj.cursor = cursor;
   if (!async_read_started) {
-    if (classic) {
-      reply_obj.encode_classic(osd_op.outdata);
-    } else {
-      ::encode(reply_obj, osd_op.outdata, features);
-    }
+    ::encode(reply_obj, osd_op.outdata, features);
   }
   if (cb && !async_read_started) {
     delete cb;
@@ -7065,7 +7039,7 @@ int PrimaryLogPG::fill_in_copy_get(
 }
 
 void PrimaryLogPG::fill_in_copy_get_noent(OpRequestRef& op, hobject_t oid,
-                                          OSDOp& osd_op, bool classic)
+                                          OSDOp& osd_op)
 {
   MOSDOp *m = static_cast<MOSDOp*>(op->get_req());
   uint64_t features = m->get_features();
@@ -7073,11 +7047,7 @@ void PrimaryLogPG::fill_in_copy_get_noent(OpRequestRef& op, hobject_t oid,
 
   pg_log.get_log().get_object_reqids(oid, 10, &reply_obj.reqids);
   dout(20) << __func__ << " got reqids " << reply_obj.reqids << dendl;
-  if (classic) {
-    reply_obj.encode_classic(osd_op.outdata);
-  } else {
-    ::encode(reply_obj, osd_op.outdata, features);
-  }
+  ::encode(reply_obj, osd_op.outdata, features);
   osd_op.rval = -ENOENT;
   MOSDOpReply *reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, false);
   reply->claim_op_out_data(m->ops);
index eb49cef3d711e86c087f71fe2b99cb39bd6b0250..fc210c1706b71ecef2e69def011da76e08a9e9c4 100644 (file)
@@ -1233,10 +1233,9 @@ protected:
     OpContext *ctx,
     bufferlist::iterator& bp,
     OSDOp& op,
-    ObjectContextRef& obc,
-    bool classic);
+    ObjectContextRef& obc);
   void fill_in_copy_get_noent(OpRequestRef& op, hobject_t oid,
-                              OSDOp& osd_op, bool classic);
+                              OSDOp& osd_op);
 
   /**
    * To copy an object, call start_copy.
index d16e2d19aa159fb9a5d6bbb7f324d9adde308516..941cef5f08f104a55a0ca37680666dbed4150bd4 100644 (file)
@@ -3919,37 +3919,6 @@ void object_copy_cursor_t::generate_test_instances(list<object_copy_cursor_t*>&
 
 // -- object_copy_data_t --
 
-void object_copy_data_t::encode_classic(bufferlist& bl) const
-{
-  ::encode(size, bl);
-  ::encode(mtime, bl);
-  ::encode(attrs, bl);
-  ::encode(data, bl);
-  if (omap_data.length())
-    bl.append(omap_data);
-  else
-    ::encode((__u32)0, bl);
-  ::encode(cursor, bl);
-}
-
-void object_copy_data_t::decode_classic(bufferlist::iterator& bl)
-{
-  ::decode(size, bl);
-  ::decode(mtime, bl);
-  ::decode(attrs, bl);
-  ::decode(data, bl);
-  {
-    map<string,bufferlist> omap;
-    ::decode(omap, bl);
-    omap_data.clear();
-    if (!omap.empty())
-      ::encode(omap, omap_data);
-  }
-  ::decode(cursor, bl);
-  flags = 0;
-  data_digest = omap_digest = 0;
-}
-
 void object_copy_data_t::encode(bufferlist& bl, uint64_t features) const
 {
   ENCODE_START(7, 5, bl);
@@ -5365,7 +5334,6 @@ ostream& operator<<(ostream& out, const OSDOp& op)
       out << " cookie " << op.op.notify.cookie;
       break;
     case CEPH_OSD_OP_COPY_GET:
-    case CEPH_OSD_OP_COPY_GET_CLASSIC:
       out << " max " << op.op.copy_get.max;
       break;
     case CEPH_OSD_OP_COPY_FROM:
index 671e0ecc2627576889b039691044bffff9c4bb58..867657ae07a5e382070eaa8ad57806a9d9e474bc 100644 (file)
@@ -3714,8 +3714,6 @@ public:
     truncate_size(0) {}
 
   static void generate_test_instances(list<object_copy_data_t*>& o);
-  void encode_classic(bufferlist& bl) const;
-  void decode_classic(bufferlist::iterator& bl);
   void encode(bufferlist& bl, uint64_t features) const;
   void decode(bufferlist::iterator& bl);
   void dump(Formatter *f) const;