]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: deep decode onode value
authorSage Weil <sage@redhat.com>
Tue, 30 May 2017 01:55:33 +0000 (21:55 -0400)
committerSage Weil <sage@redhat.com>
Tue, 30 May 2017 01:56:19 +0000 (21:56 -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>
src/os/bluestore/BlueStore.cc

index 85e8c3e6b7181bd511b56496a528235bd6895794..7eef3c77193ee4f694dddaddd559c2197160c236 100644 (file)
@@ -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