X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Flibrbd%2Foperation%2FRebuildObjectMapRequest.h;fp=src%2Fceph%2Fsrc%2Flibrbd%2Foperation%2FRebuildObjectMapRequest.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=1e43f3f4c0589d03992cae402a3e4dcfa1c4b331;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/librbd/operation/RebuildObjectMapRequest.h b/src/ceph/src/librbd/operation/RebuildObjectMapRequest.h deleted file mode 100644 index 1e43f3f..0000000 --- a/src/ceph/src/librbd/operation/RebuildObjectMapRequest.h +++ /dev/null @@ -1,84 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -#ifndef CEPH_LIBRBD_OPERATION_REBUILD_OBJECT_MAP_REQUEST_H -#define CEPH_LIBRBD_OPERATION_REBUILD_OBJECT_MAP_REQUEST_H - -#include "include/int_types.h" -#include "librbd/AsyncRequest.h" - -namespace librbd { - -class ImageCtx; -class ProgressContext; - -namespace operation { - -template -class RebuildObjectMapRequest : public AsyncRequest { -public: - - RebuildObjectMapRequest(ImageCtxT &image_ctx, Context *on_finish, - ProgressContext &prog_ctx) - : AsyncRequest(image_ctx, on_finish), m_image_ctx(image_ctx), - m_prog_ctx(prog_ctx), m_attempted_trim(false) - { - } - - void send() override; - -protected: - bool should_complete(int r) override; - -private: - /** - * Rebuild object map goes through the following state machine to - * verify per-object state: - * - * - * . | . . . . . . . . . . - * . | . . - * . v v . - * . STATE_RESIZE_OBJECT_MAP . . . > STATE_TRIM_IMAGE - * . | - * . v - * . . . > STATE_VERIFY_OBJECTS - * | - * v - * STATE_SAVE_OBJECT_MAP - * | - * v - * STATE_UPDATE_HEADER - * - * The _RESIZE_OBJECT_MAP state will be skipped if the object map - * is appropriately sized for the image. The _TRIM_IMAGE state will - * only be hit if the resize failed due to an in-use object. - */ - enum State { - STATE_RESIZE_OBJECT_MAP, - STATE_TRIM_IMAGE, - STATE_VERIFY_OBJECTS, - STATE_SAVE_OBJECT_MAP, - STATE_UPDATE_HEADER - }; - - ImageCtxT &m_image_ctx; - ProgressContext &m_prog_ctx; - State m_state; - bool m_attempted_trim; - - void send_resize_object_map(); - void send_trim_image(); - void send_verify_objects(); - void send_save_object_map(); - void send_update_header(); - - uint64_t get_image_size() const; - -}; - -} // namespace operation -} // namespace librbd - -extern template class librbd::operation::RebuildObjectMapRequest; - -#endif // CEPH_LIBRBD_OPERATION_REBUILD_OBJECT_MAP_REQUEST_H