This lets us reuse this helper for commiting recovery ops that aren't a
result of a push.
Signed-off-by: Sage Weil <sage@newdream.net>
dout(10) << "_committed_pushed_object pg has changed, not touching last_complete_ondisk" << dendl;
}
- log_subop_stats(op, l_osd_sop_push_inb, l_osd_sop_push_lat);
+ if (op)
+ log_subop_stats(op, l_osd_sop_push_inb, l_osd_sop_push_lat);
unlock();
put();
epoch_t same_since;
eversion_t last_complete;
C_OSD_CommittedPushedObject(ReplicatedPG *p, MOSDSubOp *o, epoch_t ss, eversion_t lc) : pg(p), op(o), same_since(ss), last_complete(lc) {
- op->get();
+ if (op)
+ op->get();
pg->get();
}
void finish(int r) {
pg->_committed_pushed_object(op, same_since, last_complete);
- op->put();
+ if (op)
+ op->put();
}
};