From: Jason Dillaman Date: Mon, 30 Nov 2015 21:30:51 +0000 (-0500) Subject: librbd: only enqueue flush completion if a flush is pending X-Git-Tag: v10.0.2~147^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=39c5b701dcf3c7312f15212b76f2cd1db44c8eb8;p=ceph.git librbd: only enqueue flush completion if a flush is pending Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/AsyncOperation.cc b/src/librbd/AsyncOperation.cc index 7cfc2d74f7fa..7e015d3d034d 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) {