From: Sage Weil Date: Tue, 13 Sep 2016 17:41:43 +0000 (-0400) Subject: os/bluestore: fix Extent leak from _wctx_finish X-Git-Tag: v11.0.1~238^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3ae6929b22e699a9fe9ce15b8005ae7332dba99f;p=ceph.git os/bluestore: fix Extent leak from _wctx_finish Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index deff3262088..a981d7277e4 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -7353,7 +7353,10 @@ void BlueStore::_wctx_finish( WriteContext *wctx) { set > blobs2remove; - for (auto &lo : wctx->old_extents) { + auto oep = wctx->old_extents.begin(); + while (oep != wctx->old_extents.end()) { + auto &lo = *oep; + oep = wctx->old_extents.erase(oep); dout(20) << __func__ << " lex_old " << lo << dendl; BlobRef b = lo.blob; const bluestore_blob_t& blob = b->get_blob(); @@ -7401,6 +7404,7 @@ void BlueStore::_wctx_finish( txc->statfs_delta.compressed_allocated() -= e.length; } } + delete &lo; } }