From: Samuel Just Date: Thu, 25 Aug 2016 16:30:04 +0000 (-0700) Subject: Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." X-Git-Tag: v11.0.1~356^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F10875%2Fhead;p=ceph.git Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." Accessing the OpContext* after execute_ctx is invalid, on error, it will have been deleted. This reverts commit 52be772788d9d96accaa7af9eaf9f29a3792df49. Fixes: http://tracker.ceph.com/issues/16908 Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 219beadf2db0..b0aa968e3465 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -2139,13 +2139,12 @@ void ReplicatedPG::do_op(OpRequestRef& op) execute_ctx(ctx); utime_t prepare_latency = ceph_clock_now(cct); prepare_latency -= op->get_dequeued_time(); + osd->logger->tinc(l_osd_op_prepare_lat, prepare_latency); if (op->may_read() && op->may_write()) { - osd->logger->tinc(l_osd_op_prepare_lat, prepare_latency); osd->logger->tinc(l_osd_op_rw_prepare_lat, prepare_latency); - } else if (!ctx->pending_async_reads.empty() && op->may_read()) { + } else if (op->may_read()) { osd->logger->tinc(l_osd_op_r_prepare_lat, prepare_latency); } else if (op->may_write() || op->may_cache()) { - osd->logger->tinc(l_osd_op_prepare_lat, prepare_latency); osd->logger->tinc(l_osd_op_w_prepare_lat, prepare_latency); } }