From b4f4c42b7593f93ed0157f3416c4f1ee73265850 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Thu, 25 Aug 2016 09:30:04 -0700 Subject: [PATCH] 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 --- src/osd/ReplicatedPG.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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); } } -- 2.47.3