Skip to content

Commit

Permalink
osd: remove copy-get-classic
Browse files Browse the repository at this point in the history
This hasn't been used since well before hammer.

Signed-off-by: Sage Weil <sage@redhat.com>
  • Loading branch information
liewegas committed Feb 20, 2017
1 parent 2e1e72b commit eb4c9fb
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 82 deletions.
2 changes: 1 addition & 1 deletion src/include/rados.h
Expand Up @@ -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") \
Expand Down
1 change: 0 additions & 1 deletion src/osd/OSD.cc
Expand Up @@ -9499,7 +9499,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();
Expand Down
56 changes: 13 additions & 43 deletions src/osd/PrimaryLogPG.cc
Expand Up @@ -2120,13 +2120,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;
Expand Down Expand Up @@ -2233,13 +2228,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;
}
Expand Down Expand Up @@ -5962,16 +5952,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:
Expand Down Expand Up @@ -6963,30 +6947,24 @@ 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) {
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);
}
};

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;
Expand All @@ -7009,7 +6987,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
Expand Down Expand Up @@ -7135,11 +7113,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;
Expand All @@ -7149,19 +7123,15 @@ 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();
object_copy_data_t reply_obj;

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);
Expand Down
5 changes: 2 additions & 3 deletions src/osd/PrimaryLogPG.h
Expand Up @@ -1234,10 +1234,9 @@ class PrimaryLogPG : public PG, public PGBackend::Listener {
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.
Expand Down
32 changes: 0 additions & 32 deletions src/osd/osd_types.cc
Expand Up @@ -3901,37 +3901,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);
Expand Down Expand Up @@ -5347,7 +5316,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:
Expand Down
2 changes: 0 additions & 2 deletions src/osd/osd_types.h
Expand Up @@ -3674,8 +3674,6 @@ struct object_copy_data_t {
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;
Expand Down

0 comments on commit eb4c9fb

Please sign in to comment.