const sobject_t& soid = obc->soid;
OpContext *ctx = new OpContext(op, op->get_reqid(), op->ops, op->get_data(),
obc->state, &obc->oi);
-
bool noop = false;
- if (ctx->ops.empty()) {
- noop = true;
- }
if (op->may_write()) {
// version
// read or error?
if (ctx->op_t.empty() || result < 0) {
-
-
MOSDOpReply *reply = new MOSDOpReply(op, 0, osd->osdmap->get_epoch(),
CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK);
reply->set_data(ctx->outdata);
// ========================================================================
-// READS
+// low level osd ops
int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<ceph_osd_op>& ops,
bufferlist::iterator& bp, bufferlist& odata,
-// ========================================================================
-// MODIFY
-
-
-
void ReplicatedPG::_make_clone(ObjectStore::Transaction& t,
sobject_t head, pobject_t coid,
object_info_t *poi)
// ========================================================================
// rep op gather
-class C_OSD_ModifyCommit : public Context {
+class C_OSD_OpCommit : public Context {
public:
ReplicatedPG *pg;
ReplicatedPG::RepGather *repop;
- C_OSD_ModifyCommit(ReplicatedPG *p, ReplicatedPG::RepGather *rg) :
+ C_OSD_OpCommit(ReplicatedPG *p, ReplicatedPG::RepGather *rg) :
pg(p), repop(rg) {
repop->get();
pg->get(); // we're copying the pointer
void finish(int r) {
pg->lock();
if (!pg->is_deleted())
- pg->op_modify_ondisk(repop);
+ pg->op_ondisk(repop);
repop->put();
pg->unlock();
pg->put();
}
};
-/** op_modify_commit
+/** op_commit
* transaction commit on the acker.
*/
-void ReplicatedPG::op_modify_ondisk(RepGather *repop)
+void ReplicatedPG::op_ondisk(RepGather *repop)
{
if (repop->aborted) {
- dout(10) << "op_modify_ondisk " << *repop << " -- aborted" << dendl;
+ dout(10) << "op_ondisk " << *repop << " -- aborted" << dendl;
} else if (repop->waitfor_disk.count(osd->get_nodeid()) == 0) {
- dout(10) << "op_modify_ondisk " << *repop << " -- already marked ondisk" << dendl;
+ dout(10) << "op_ondisk " << *repop << " -- already marked ondisk" << dendl;
} else {
- dout(10) << "op_modify_ondisk " << *repop << dendl;
+ dout(10) << "op_ondisk " << *repop << dendl;
repop->waitfor_disk.erase(osd->get_nodeid());
repop->waitfor_nvram.erase(osd->get_nodeid());
repop->pg_complete_thru[osd->get_nodeid()] = repop->pg_local_last_complete;
dout(10) << "apply_repop applying update on " << *repop << dendl;
assert(!repop->applied);
- Context *oncommit = new C_OSD_ModifyCommit(this, repop);
+ Context *oncommit = new C_OSD_OpCommit(this, repop);
list<ObjectStore::Transaction*> tls;
tls.push_back(&repop->ctx->op_t);
bool pull(sobject_t oid);
- // modify
- void op_modify_ondisk(RepGather *repop);
- void sub_op_modify_ondisk(MOSDSubOp *op, int ackerosd, eversion_t last_complete);
+ // low level ops
+ void op_ondisk(RepGather *repop);
void _make_clone(ObjectStore::Transaction& t,
sobject_t head, sobject_t coid,
int prepare_transaction(OpContext *ctx, bool& exists, __u64& size);
void log_op(OpContext *ctx);
- friend class C_OSD_ModifyCommit;
+ friend class C_OSD_OpCommit;
friend class C_OSD_RepModifyCommit;
// pg on-disk content
int recover_replicas(int max);
void sub_op_modify(MOSDSubOp *op);
+ void sub_op_modify_ondisk(MOSDSubOp *op, int ackerosd, eversion_t last_complete);
+
void sub_op_modify_reply(MOSDSubOpReply *reply);
void sub_op_push(MOSDSubOp *op);
void sub_op_push_reply(MOSDSubOpReply *reply);