summaryrefslogtreecommitdiffstats
path: root/src/os/bluestore/BlueStore.cc
diff options
context:
space:
mode:
authorSage Weil <sage@redhat.com>2017-05-30 03:55:33 +0200
committerSage Weil <sage@redhat.com>2017-05-30 03:56:19 +0200
commitf53f56350b893bfdd47fe730a4339ca5793791a0 (patch)
tree2b6e101bacd98e93d943764a956e612e4ba11154 /src/os/bluestore/BlueStore.cc
parentos/bluestore: fsck: use btree_set to replace set<uint64_t> (diff)
downloadceph-f53f56350b893bfdd47fe730a4339ca5793791a0.tar.xz
ceph-f53f56350b893bfdd47fe730a4339ca5793791a0.zip
os/bluestore: deep decode onode value
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>
Diffstat (limited to '')
-rw-r--r--src/os/bluestore/BlueStore.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc
index 85e8c3e6b71..7eef3c77193 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