From: Sage Weil Date: Tue, 30 May 2017 01:55:33 +0000 (-0400) Subject: os/bluestore: deep decode onode value X-Git-Tag: v11.2.1~91^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=73fe367bc4bf27730479bdc46931dd7c3c710c39;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 (cherry picked from commit f53f56350b893bfdd47fe730a4339ca5793791a0) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 95aec3e4d77..dbbeb87cc53 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -2446,7 +2446,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