From: Sage Weil Date: Tue, 30 May 2017 01:55:33 +0000 (-0400) Subject: os/bluestore: deep decode onode value X-Git-Tag: v12.1.0~87^2~1^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f53f56350b893bfdd47fe730a4339ca5793791a0;p=ceph.git os/bluestore: deep decode onode value In particular, we want the attrs (map) to be a deep decode so that we do not pin this buffer, and so that any changed attr will free the previous memory. Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 85e8c3e6b718..7eef3c77193e 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -3131,7 +3131,7 @@ BlueStore::OnodeRef BlueStore::Collection::get_onode( assert(r >= 0); on = new Onode(this, oid, key); on->exists = true; - bufferptr::iterator p = v.front().begin(); + bufferptr::iterator p = v.front().begin_deep(); on->onode.decode(p); // initialize extent_map