#include "librbd/ExclusiveLock.h"
#include "librbd/ObjectMap.h"
#include "librbd/Utils.h"
+#include "librbd/asio/ContextWQ.h"
#include "librbd/deep_copy/Handler.h"
#include "librbd/io/AioCompletion.h"
#include "librbd/io/AsyncOperation.h"
namespace librbd {
namespace deep_copy {
+using librbd::util::create_async_context_callback;
using librbd::util::create_context_callback;
using librbd::util::create_rados_callback;
m_snapshot_delta.clear();
- auto ctx = create_context_callback<
- ObjectCopyRequest, &ObjectCopyRequest<I>::handle_list_snaps>(this);
+ auto ctx = create_async_context_callback(
+ *m_src_image_ctx, create_context_callback<
+ ObjectCopyRequest, &ObjectCopyRequest<I>::handle_list_snaps>(this));
auto aio_comp = io::AioCompletion::create_and_start(
ctx, util::get_image_ctx(m_src_image_ctx), io::AIO_TYPE_GENERIC);
auto req = io::ImageDispatchSpec::create_list_snaps(
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);
librbd::MockObjectMap mock_object_map;
mock_dst_image_ctx.object_map = &mock_object_map;
+ expect_op_work_queue(mock_src_image_ctx);
expect_test_features(mock_dst_image_ctx);
expect_get_object_count(mock_dst_image_ctx);