From cde3c54145e5f110d3ab9dba146dfe333fb9456f Mon Sep 17 00:00:00 2001 From: Xinze Chi Date: Mon, 9 May 2016 19:22:50 +0800 Subject: [PATCH] ReplicatedPG: fix fill_in_copy_get logic performance degrade when promote or flush object Signed-off-by: Xinze Chi --- src/osd/ReplicatedPG.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index be65e6ed7146..1390198168cb 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -7001,14 +7001,14 @@ int ReplicatedPG::fill_in_copy_get( bufferlist& bl = reply_obj.data; if (left > 0 && !cursor.data_complete) { if (cursor.data_offset < oi.size) { - left = MIN(oi.size - cursor.data_offset, (uint64_t)left); + uint64_t max_read = MIN(oi.size - cursor.data_offset, (uint64_t)left); if (cb) { async_read_started = true; ctx->pending_async_reads.push_back( make_pair( - boost::make_tuple(cursor.data_offset, left, osd_op.op.flags), + boost::make_tuple(cursor.data_offset, max_read, osd_op.op.flags), make_pair(&bl, cb))); - result = left; + result = max_read; cb->len = result; } else { result = pgbackend->objects_read_sync( -- 2.47.3