From: Jianpeng Ma Date: Thu, 29 Jan 2015 08:44:35 +0000 (+0800) Subject: osdc: only external_call can touch object. X-Git-Tag: v0.93~139^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef48a70d55d3e5cbed581aa24672eefa183cb563;p=ceph.git 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 --- 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) {