summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-11-24 09:37:35 -0800
committerSage Weil <sage@inktank.com>2012-11-24 10:05:52 -0800
commit7602a055764aff1c50b1e2641a3e703845cbe471 (patch)
tree3f7b1a257f54187ebae6af5a6627b8b8b64f6467
parent8a03d50146bdad346d984e6a6061146aef23a154 (diff)
downloadceph-7602a055764aff1c50b1e2641a3e703845cbe471.tar.gz
osdc/ObjectCacher: fix BufferHead leak on ENOENT
This was detected by fsstress over ceph-fuse under valgrind. Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/osdc/ObjectCacher.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc
index 8edf3a55c4b..c933bad164a 100644
--- a/src/osdc/ObjectCacher.cc
+++ b/src/osdc/ObjectCacher.cc
@@ -703,6 +703,7 @@ void ObjectCacher::bh_read_finish(int64_t poolid, sobject_t oid, loff_t start,
if (r == -ENOENT) {
ldout(cct, 10) << "bh_read_finish removing " << *bh << dendl;
bh_remove(ob, bh);
+ delete bh;
continue;
}