]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
bug fix: osd: do not cache unused buffer in attrs 6499/head
authorXinze Chi <xmdxcxz@gmail.com>
Sun, 2 Aug 2015 10:36:40 +0000 (18:36 +0800)
committerNathan Cutler <ncutler@suse.com>
Mon, 9 Nov 2015 09:47:48 +0000 (10:47 +0100)
commit9643ee65a6e968e479ca33a102f5f575924a7ff0
tree8e6b3bc60c2ffda3940cedf6eeea02e8b00b5ee7
parent5e8c9d967e0ade393e36893965ca8ddfaa317b48
bug fix: osd: do not cache unused buffer in attrs

attrs only reference the origin bufferlist (decode from MOSDPGPush or
ECSubReadReply message) whose size is much greater than attrs in recovery.
If obc cache it (get_obc maybe cache the attr), this causes the whole origin
bufferlist would not be free until obc is evicted from obc cache. So rebuild
the bufferlist before cache it.

Fixes: #12565
Signed-off-by: Ning Yao <zay11022@gmail.com>
Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
(cherry picked from commit c5895d3fad9da0ab7f05f134c49e22795d5c61f3)
src/osd/ECBackend.cc
src/osd/ReplicatedBackend.cc