didit = true;
osd_logtype.add_set(l_osd_opq, "opq");
osd_logtype.add_inc(l_osd_op, "op");
+ osd_logtype.add_set(l_osd_opwip, "opwip");
osd_logtype.add_inc(l_osd_c_rd, "c_rd");
osd_logtype.add_inc(l_osd_c_rdb, "c_rdb");
osd_logtype.add_inc(l_osd_c_wr, "c_wr");
l_osd_first = 10000,
l_osd_opq,
l_osd_op,
+ l_osd_opwip,
l_osd_c_rd,
l_osd_c_rdb,
l_osd_c_wr,
LogClient logclient;
-
int whoami;
const char *dev_path, *journal_path;
assert(repop_queue.front() == repop);
}
repop_queue.pop_front();
- repop_map.erase(repop->rep_tid);
- repop->put();
+ remove_repop(repop);
}
}
repop_map[repop->rep_tid] = repop;
repop->get();
+ if (osd->logger)
+ osd->logger->set(l_osd_opwip, repop_map.size());
+
return repop;
}
+void ReplicatedPG::remove_repop(RepGather *repop)
+{
+ repop_map.erase(repop->rep_tid);
+ repop->put();
+
+ if (osd->logger)
+ osd->logger->set(l_osd_opwip, repop_map.size());
+}
void ReplicatedPG::repop_ack(RepGather *repop, int result, int ack_type,
int fromosd, eversion_t peer_lcod)
if (!repop->applied && !repop->applying)
apply_repop(repop);
repop->aborted = true;
- repop_map.erase(repop->rep_tid);
if (requeue && repop->ctx->op) {
dout(10) << " requeuing " << *repop->ctx->op << dendl;
repop->ctx->op = 0;
}
- repop->put();
+ remove_repop(repop);
}
if (requeue)
void issue_repop(RepGather *repop, utime_t now,
eversion_t old_last_update, bool old_exists, uint64_t old_size, eversion_t old_version);
RepGather *new_repop(OpContext *ctx, ObjectContext *obc, bool noop, tid_t rep_tid);
+ void remove_repop(RepGather *repop);
void repop_ack(RepGather *repop,
int result, int ack_type,
int fromosd, eversion_t pg_complete_thru=eversion_t(0,0));