]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: deep decode onode value 15792/head
authorSage Weil <sage@redhat.com>
Tue, 30 May 2017 01:55:33 +0000 (21:55 -0400)
committerSage Weil <sage@redhat.com>
Wed, 21 Jun 2017 02:20:52 +0000 (22:20 -0400)
In particular, we want the attrs (map<string,bufferptr>) 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 <sage@redhat.com>
(cherry picked from commit f53f56350b893bfdd47fe730a4339ca5793791a0)

src/os/bluestore/BlueStore.cc

index 95aec3e4d7745c3ad6fd7d4eb8883dbf9ddeb352..dbbeb87cc535d612284245c8966ea9d761ace1cc 100644 (file)
@@ -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