This just doubles up the data payload. And makes the MOSDSubOp printout
look like garbage, since e.g. the setxattr names are taken from the
portion of the data payload encoding the transaction.
::decode(pgid, p);
::decode(poid, p);
- unsigned num_ops;
+ __u32 num_ops;
::decode(num_ops, p);
ops.resize(num_ops);
unsigned off = 0;
wr->get_data() = repop->ctx->op->get_data(); // _copy_ bufferlist
} else {
// ship resulting transaction, log entries, and pg_stats
- wr->ops = repop->ctx->ops; // just fyi
::encode(repop->ctx->op_t, wr->get_data());
::encode(repop->ctx->log, wr->logbl);
wr->pg_stats = info.stats;
const char *opname;
if (op->noop)
opname = "no-op";
- else
+ else if (op->ops.size())
opname = ceph_osd_op_name(op->ops[0].op.op);
+ else
+ opname = "trans";
dout(10) << "sub_op_modify " << opname
<< " " << soid