From 73fe367bc4bf27730479bdc46931dd7c3c710c39 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 29 May 2017 21:55:33 -0400 Subject: [PATCH] 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) --- src/os/bluestore/BlueStore.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 -- 2.47.3