From: Sage Weil Date: Fri, 16 Aug 2013 04:48:06 +0000 (-0700) Subject: osdc/ObjectCacher: do not merge rx buffers X-Git-Tag: v0.67.3~24 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=02608a12d4e7592784148a62a47d568efc24079d;p=ceph.git osdc/ObjectCacher: do not merge rx buffers We do not try to merge rx buffers currently. Make that explicit and documented in the code that it is not supported. (Otherwise the last_read_tid values will get lost and read results won't get applied to the cache properly.) Signed-off-by: Sage Weil (cherry picked from commit 1c50c446152ab0e571ae5508edb4ad7c7614c310) --- diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index 8dd9de26cf6a..01eeccc03be2 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -114,6 +114,10 @@ void ObjectCacher::Object::try_merge_bh(BufferHead *bh) assert(oc->lock.is_locked()); ldout(oc->cct, 10) << "try_merge_bh " << *bh << dendl; + // do not merge rx buffers; last_read_tid may not match + if (bh->is_rx()) + return; + // to the left? map::iterator p = data.find(bh->start()); assert(p->second == bh);