]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc: only external_call can touch object.
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 29 Jan 2015 08:44:35 +0000 (16:44 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Fri, 30 Jan 2015 05:23:16 +0000 (13:23 +0800)
In fact if there is retry reading, the touch_bh also touch object.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/osdc/ObjectCacher.cc

index 2000f6448336354ea19638e92dc0a02f9cdf05ff..f54c356c128933bafa8ecd6d41a81c1a46b071c9 100644 (file)
@@ -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) {