MCPcopy Create free account
hub / github.com/ceph/ceph / ObjectCopyRequest

Method ObjectCopyRequest

src/librbd/deep_copy/ObjectCopyRequest.cc:37–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35
36template <typename I>
37ObjectCopyRequest<I>::ObjectCopyRequest(I *src_image_ctx,
38 I *dst_image_ctx,
39 librados::snap_t src_snap_id_start,
40 librados::snap_t dst_snap_id_start,
41 const SnapMap &snap_map,
42 uint64_t dst_object_number,
43 uint32_t flags, Handler* handler,
44 Context *on_finish)
45 : m_src_image_ctx(src_image_ctx),
46 m_dst_image_ctx(dst_image_ctx), m_cct(dst_image_ctx->cct),
47 m_src_snap_id_start(src_snap_id_start),
48 m_dst_snap_id_start(dst_snap_id_start), m_snap_map(snap_map),
49 m_dst_object_number(dst_object_number), m_flags(flags),
50 m_handler(handler), m_on_finish(on_finish) {
51 ceph_assert(src_image_ctx->data_ctx.is_valid());
52 ceph_assert(dst_image_ctx->data_ctx.is_valid());
53 ceph_assert(!m_snap_map.empty());
54
55 m_src_async_op = new io::AsyncOperation();
56 m_src_async_op->start_op(*get_image_ctx(m_src_image_ctx));
57
58 m_src_io_ctx.dup(m_src_image_ctx->data_ctx);
59 m_dst_io_ctx.dup(m_dst_image_ctx->data_ctx);
60
61 m_dst_oid = m_dst_image_ctx->get_object_name(dst_object_number);
62
63 ldout(m_cct, 20) << "src_image_id=" << m_src_image_ctx->id
64 << ", dst_image_id=" << m_dst_image_ctx->id
65 << ", dst_oid=" << m_dst_oid
66 << ", src_snap_id_start=" << m_src_snap_id_start
67 << ", dst_snap_id_start=" << m_dst_snap_id_start
68 << ", snap_map=" << m_snap_map << dendl;
69}
70
71template <typename I>
72void ObjectCopyRequest<I>::send() {

Callers

nothing calls this directly

Calls 6

get_image_ctxFunction · 0.50
is_validMethod · 0.45
emptyMethod · 0.45
start_opMethod · 0.45
dupMethod · 0.45
get_object_nameMethod · 0.45

Tested by

no test coverage detected