ctx->reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, false);
ctx->user_at_version = prdop->user_version;
ctx->data_off = prdop->data_offset;
+ ctx->ignore_log_op_stats = true;
complete_read_ctx(r, ctx);
}
ctx->reply = NULL;
if (result >= 0) {
- log_op_stats(ctx);
- publish_stats_to_osd();
+ if (!ctx->ignore_log_op_stats) {
+ log_op_stats(ctx);
+ publish_stats_to_osd();
+ }
// on read, return the current object version
if (ctx->obs) {
bool undirty; // user explicitly un-dirtying this object
bool cache_evict; ///< true if this is a cache eviction
bool ignore_cache; ///< true if IGNORE_CACHE flag is set
+ bool ignore_log_op_stats; // don't log op stats
// side effects
list<pair<watch_info_t,bool> > watch_connects; ///< new watch + will_ping flag
snapset(0),
new_obs(obs->oi, obs->exists),
modify(false), user_modify(false), undirty(false), cache_evict(false),
- ignore_cache(false),
+ ignore_cache(false), ignore_log_op_stats(false),
bytes_written(0), bytes_read(0), user_at_version(0),
current_osd_subop_num(0),
op_t(NULL),
vector<OSDOp>& _ops, ReplicatedPG *_pg) :
op(_op), reqid(_reqid), ops(_ops), obs(NULL), snapset(0),
modify(false), user_modify(false), undirty(false), cache_evict(false),
- ignore_cache(false),
+ ignore_cache(false), ignore_log_op_stats(false),
bytes_written(0), bytes_read(0), user_at_version(0),
current_osd_subop_num(0),
op_t(NULL),