From ef48a70d55d3e5cbed581aa24672eefa183cb563 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Thu, 29 Jan 2015 16:44:35 +0800 Subject: [PATCH] osdc: only external_call can touch object. In fact if there is retry reading, the touch_bh also touch object. Signed-off-by: Jianpeng Ma --- src/osdc/ObjectCacher.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index 2000f6448336..f54c356c1289 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -1065,7 +1065,8 @@ int ObjectCacher::_readx(OSDRead *rd, ObjectSet *oset, Context *onfinish, // get Object cache sobject_t soid(ex_it->oid, rd->snap); Object *o = get_object(soid, oset, ex_it->oloc, ex_it->truncate_size, oset->truncate_seq); - touch_ob(o); + if (external_call) + touch_ob(o); // does not exist and no hits? if (oset->return_enoent && !o->exists) { -- 2.47.3