}
void ImageCtx::flush_copyup(Context *on_finish) {
+ on_finish = util::create_async_context_callback(*this, on_finish);
if (copyup_finisher == nullptr) {
on_finish->complete(0);
return;
template <typename I>
void CloseRequest<I>::send_flush_copyup() {
+ if (m_image_ctx->copyup_finisher == nullptr) {
+ send_flush_op_work_queue();
+ return;
+ }
+
CephContext *cct = m_image_ctx->cct;
ldout(cct, 10) << this << " " << __func__ << dendl;
void CloseRequest<I>::handle_flush_copyup(int r) {
CephContext *cct = m_image_ctx->cct;
ldout(cct, 10) << this << " " << __func__ << ": r=" << r << dendl;
+
+ m_image_ctx->copyup_finisher->stop();
send_flush_op_work_queue();
}