X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Flibrbd%2Fjournal%2FRemoveRequest.cc;fp=src%2Fceph%2Fsrc%2Flibrbd%2Fjournal%2FRemoveRequest.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=aa2d13e8652c416dd6886b3fc7c0fa2e50e075df;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/librbd/journal/RemoveRequest.cc b/src/ceph/src/librbd/journal/RemoveRequest.cc deleted file mode 100644 index aa2d13e..0000000 --- a/src/ceph/src/librbd/journal/RemoveRequest.cc +++ /dev/null @@ -1,154 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#include "common/dout.h" -#include "common/errno.h" -#include "common/Timer.h" -#include "common/WorkQueue.h" -#include "journal/Settings.h" -#include "include/assert.h" -#include "librbd/Utils.h" -#include "librbd/journal/RemoveRequest.h" - -#define dout_subsys ceph_subsys_rbd -#undef dout_prefix -#define dout_prefix *_dout << "librbd::Journal::RemoveRequest: " - -namespace librbd { - -using util::create_context_callback; - -namespace journal { - -template -RemoveRequest::RemoveRequest(IoCtx &ioctx, const std::string &image_id, - const std::string &client_id, - ContextWQ *op_work_queue, - Context *on_finish) - : m_ioctx(ioctx), m_image_id(image_id), m_image_client_id(client_id), - m_op_work_queue(op_work_queue), m_on_finish(on_finish) { - m_cct = reinterpret_cast(m_ioctx.cct()); -} - -template -void RemoveRequest::send() { - ldout(m_cct, 20) << this << " " << __func__ << dendl; - - stat_journal(); -} - -template -void RemoveRequest::stat_journal() { - ldout(m_cct, 20) << this << " " << __func__ << dendl; - - ImageCtx::get_timer_instance(m_cct, &m_timer, &m_timer_lock); - m_journaler = new Journaler(m_op_work_queue, m_timer, m_timer_lock, - m_ioctx, m_image_id, m_image_client_id, {}); - - using klass = RemoveRequest; - Context *ctx = create_context_callback(this); - - m_journaler->exists(ctx); -} - -template -Context *RemoveRequest::handle_stat_journal(int *result) { - ldout(m_cct, 20) << __func__ << ": r=" << *result << dendl; - - if ((*result < 0) && (*result != -ENOENT)) { - lderr(m_cct) << "failed to stat journal header: " << cpp_strerror(*result) << dendl; - shut_down_journaler(*result); - return nullptr; - } - - if (*result == -ENOENT) { - shut_down_journaler(0); - return nullptr; - } - - init_journaler(); - return nullptr; -} - -template -void RemoveRequest::init_journaler() { - ldout(m_cct, 20) << this << " " << __func__ << dendl; - - using klass = RemoveRequest; - Context *ctx = create_context_callback(this); - - m_journaler->init(ctx); -} - -template -Context *RemoveRequest::handle_init_journaler(int *result) { - ldout(m_cct, 20) << __func__ << ": r=" << *result << dendl; - - if ((*result < 0) && (*result != -ENOENT)) { - lderr(m_cct) << "failed to init journaler: " << cpp_strerror(*result) << dendl; - shut_down_journaler(*result); - return nullptr; - } - - remove_journal(); - return nullptr; -} - -template -void RemoveRequest::remove_journal() { - ldout(m_cct, 20) << this << " " << __func__ << dendl; - - using klass = RemoveRequest; - Context *ctx = create_context_callback(this); - - m_journaler->remove(true, ctx); -} - -template -Context *RemoveRequest::handle_remove_journal(int *result) { - ldout(m_cct, 20) << __func__ << ": r=" << *result << dendl; - - if (*result < 0) { - lderr(m_cct) << "failed to remove journal: " << cpp_strerror(*result) << dendl; - } - - shut_down_journaler(*result); - return nullptr; -} - -template -void RemoveRequest::shut_down_journaler(int r) { - ldout(m_cct, 20) << this << " " << __func__ << dendl; - - m_r_saved = r; - - using klass = RemoveRequest; - Context *ctx = create_context_callback(this); - - m_journaler->shut_down(ctx); -} - -template -Context *RemoveRequest::handle_journaler_shutdown(int *result) { - ldout(m_cct, 20) << __func__ << ": r=" << *result << dendl; - - if (*result < 0) { - lderr(m_cct) << "failed to shut down journaler: " << cpp_strerror(*result) << dendl; - } - - delete m_journaler; - - if (m_r_saved == 0) { - ldout(m_cct, 20) << "done." << dendl; - } - - m_on_finish->complete(m_r_saved); - delete this; - - return nullptr; -} - -} // namespace journal -} // namespace librbd - -template class librbd::journal::RemoveRequest;