From 39c5b701dcf3c7312f15212b76f2cd1db44c8eb8 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 30 Nov 2015 16:30:51 -0500 Subject: [PATCH] librbd: only enqueue flush completion if a flush is pending Signed-off-by: Jason Dillaman --- src/librbd/AsyncOperation.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/librbd/AsyncOperation.cc b/src/librbd/AsyncOperation.cc index 7cfc2d74f7fa6..7e015d3d034d9 100644 --- a/src/librbd/AsyncOperation.cc +++ b/src/librbd/AsyncOperation.cc @@ -63,9 +63,11 @@ void AsyncOperation::finish_op() { } } - C_CompleteFlushes *ctx = new C_CompleteFlushes(m_image_ctx, - std::move(m_flush_contexts)); - m_image_ctx->op_work_queue->queue(ctx); + if (!m_flush_contexts.empty()) { + C_CompleteFlushes *ctx = new C_CompleteFlushes(m_image_ctx, + std::move(m_flush_contexts)); + m_image_ctx->op_work_queue->queue(ctx); + } } void AsyncOperation::add_flush_context(Context *on_finish) { -- 2.39.5