From: Ilya Dryomov Date: Thu, 29 Apr 2021 13:03:46 +0000 (+0200) Subject: librbd/cache/pwl/ssd/WriteLog: fix free()/delete mismatch X-Git-Tag: v16.2.7~50^2~60 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=338038a76e7e651530cfaca87ba8b862295ff4cf;p=ceph.git librbd/cache/pwl/ssd/WriteLog: fix free()/delete mismatch Trivial-fix: space mismatch(no new change) https://www.diffchecker.com/WCSkqu2R Signed-off-by: Ilya Dryomov (cherry picked from commit 5b89c47ec5139a8d07be09c9f0021d90fe4a663b) --- diff --git a/src/librbd/cache/pwl/ssd/WriteLog.cc b/src/librbd/cache/pwl/ssd/WriteLog.cc index 725039a81f65..b72e71fc09e5 100644 --- a/src/librbd/cache/pwl/ssd/WriteLog.cc +++ b/src/librbd/cache/pwl/ssd/WriteLog.cc @@ -494,21 +494,21 @@ Context* WriteLog::construct_flush_entry_ctx( if (invalidating) { return ctx; } - if(log_entry->is_write_entry()) { - bufferlist *read_bl_ptr = new bufferlist; - ctx = new LambdaContext( - [this, log_entry, read_bl_ptr, ctx](int r) { - bufferlist captured_entry_bl; - captured_entry_bl.claim_append(*read_bl_ptr); - free(read_bl_ptr); - m_image_ctx.op_work_queue->queue(new LambdaContext( - [this, log_entry, entry_bl=move(captured_entry_bl), ctx](int r) { - auto captured_entry_bl = std::move(entry_bl); - ldout(m_image_ctx.cct, 15) << "flushing:" << log_entry - << " " << *log_entry << dendl; - log_entry->writeback_bl(this->m_image_writeback, ctx, - std::move(captured_entry_bl)); - }), 0); + if (log_entry->is_write_entry()) { + bufferlist *read_bl_ptr = new bufferlist; + ctx = new LambdaContext( + [this, log_entry, read_bl_ptr, ctx](int r) { + bufferlist captured_entry_bl; + captured_entry_bl.claim_append(*read_bl_ptr); + delete read_bl_ptr; + m_image_ctx.op_work_queue->queue(new LambdaContext( + [this, log_entry, entry_bl=move(captured_entry_bl), ctx](int r) { + auto captured_entry_bl = std::move(entry_bl); + ldout(m_image_ctx.cct, 15) << "flushing:" << log_entry + << " " << *log_entry << dendl; + log_entry->writeback_bl(this->m_image_writeback, ctx, + std::move(captured_entry_bl)); + }), 0); }); ctx = new LambdaContext( [this, log_entry, read_bl_ptr, ctx](int r) {